CocoaSeeds, Cocoa的Git模块替代

分享于 

7分钟阅读

GitHub

  繁體 雙語
Git Submodule Alternative for Cocoa.
  • 源代码名称:CocoaSeeds
  • 源代码网址:http://www.github.com/devxoul/CocoaSeeds
  • CocoaSeeds源代码文档
  • CocoaSeeds源代码下载
  • Git URL:
    git://www.github.com/devxoul/CocoaSeeds.git
    Git Clone代码到本地:
    git clone http://www.github.com/devxoul/CocoaSeeds
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/devxoul/CocoaSeeds
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    CocoaSeeds

    GemBuild Status

    Cocoa的Git模块替代。 由 CocoaPods 激发。

    为什么?

    • iOS 7项目不支持从 CocoaPods 或者 Carthage使用 Swift 库。

      ld: 警告:嵌入式 dylibs/框架仅在 iOS 8或者更高版本上运行

    • CocoaSeeds只下载源代码并将它的添加到Xcode项目中。 没有 static 库,没有动态框架。

    • Git模块很烂。

    • 它可以与CocoaPods和Carthage一起使用。

    安装

    你可以从 RubyGems 获得 CocoaSeeds。

    $ [sudo] gem install cocoaseeds

    如何使用 CocoaSeeds

    1编写 Seedfile

    Seedfile 是一个 ruby 脚本,它显示你的项目的依赖项。 你只需在Seedfile中指定第三方库即可管理。 目前,CocoaSeeds只支持GitHub和BitBucket存储库。 然而,我们正计划支持其他版本控制系统。

    让我们在你的Xcode项目文件所在的目录中创建一个名为 Seedfile的空文件。 下面是一个Seedfile示例:

    Seedfile

    github "Alamofire/Alamofire", "1.2.1", :files => "Source/*.{swift,h}"github "devxoul/JLToast", "1.2.5", :files => "JLToast/*.{swift,h}"github "devxoul/SwipeBack", "1.0.4"github "SnapKit/SnapKit", :commit => "62e7645", :files => "Source/*.{swift,h}"git "https://gitlab.com/MyCompany/CompanyLibrary.git", "1.1.0"local "PrivateLibrary", "../libs/PrivateLibrary", :files => "Source/*.{swift,h}"target :MyAppTestdo github "Quick/Quick", "v0.3.1", :files => "Quick/**.{swift,h}" github "Quick/Nimble", "v0.4.2", :files => "Nimble/**.{swift,h}"end

    你能猜出每一行是什么? 它有关于第三方图书馆的基本信息。

    Seedfile中的每一行由三个部分组成: 源。标记和文件。让我们看一下前面示例的第二行。

    github "devxoul/JLToast", "1.2.5", :files => "JLToast/*.{swift,h}"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Source) (Version) (Files)
    部件示例需要默认值
    github"devxoul/SwipeBack"必选-
    版本标签:"1.0.4"
    分支:"swift-2.0"
    提交::commit =>"SHA1"
    必选-
    文件:files =>"JLToast/*.{swift,h}"可选*/**.{h,m,mm,swift}

    提示: 可以为多个文件模式传递 array 到 :files:

    :files => ["/path1/*.swift", "/path2/*.swift"]

    要使用分支名称而不是标记? 请参阅分支支持插件部分。

    指定目标

    第三方库可以通过创建目标块作为特定目标来包含。 例如如果要添加一些测试库,如快速和敏捷测试目标,你可以像这样指定它们:

    target :MyAppTestdo github "Quick/Quick", "v0.3.1", :files => "Quick/**.{swift,h}" github "Quick/Nimble", "v0.4.2", :files => "Nimble/**.{swift,h}"end
    指定Xcode项目文件路径

    如果。xcodeproj文件位于其他位置,则可以在Seedfile中指定路径。

    xcodeproj "path/to/Project.xcodeproj"target :MyAppdo github "devxoul/JLToast", "1.2.5", :files => "JLToast/*.{swift,h}"end

    2安装依赖项

    完成Seedfile之后,就应该将这些库加载到项目中了。 这很简单。只需打开终端,将cd到你的项目目录,然后执行 seed install 命令。

    $ seed install

    然后,所有源文件都会自动下载并添加到名为'种子'的组中。

    Seeds-in-Xcode

    3请享用

    构建你的项目并享受编码 !

    提示和技巧

    使用分支

    你可以指定分支 NAME 而不是标记。 你需要做的只是用分支名替换标签。

    github 'devxoul/SwiftyImage', 'swift-2.0', :files => 'SwiftyImage/SwiftyImage.swift'
    排除文件

    使用 exclude_filesfiles Pattern 中排除文件。

    github 'devxoul/Carte', '0.2.2', :files => 'Carte/*', :exclude_files => "Carte/Carte.h"
    使用资源

    如果资源文件在 files 中是 sprecified,则它们将被添加到 Copy复制包资源生成阶段instead编译阶段编译阶段。

    github 'author/Repository', 'x.y.z', :files => ['Source/*', 'Images/*']
    解决文件名冲突

    由于CocoaSeeds试图直接包含源文件而不是链接动态框架,所以确保所有源代码具有不同的名称是很重要的。 CocoaSeeds提供了一种实现这里目的的方法:

    Seedfile

    swift_seedname_prefix! # add this line
    github"thoughtbot/Argo","v1.0.3", :files =>"Argo/*/*.swift"
    github"thoughtbot/Runes","v2.0.0", :files =>"Source/*.swift"

    然后通过CocoasSeeds安装的所有源文件都将有名称为前缀的名称。

    在之前,在( seedname_filename ) 之后,
    Seeds/Alamofire/Alamofire.swiftSeeds/Alamofire/Alamofire_Alamofire.swift
    Seeds/Argo/Operators/Operators.swiftSeeds/Argo/Operators/Argo_Operators.swift
    Seeds/Runes/Operators.swiftSeeds/Runes/Runes_Operators.swift

    常见问题解答

    • 你是否在实际的项目中使用? ( 苹果是否允许应用使用 CocoaSeeds)?

      • 当然,我正在开发一个大约 2万用户的社交媒体服务。 应用在 AppStore 上,没有苹果的投诉。
    • 我可以忽略 VCS的种子 folder folder?

      • 是,你可以忽略种子文件夹( 如果你使用 Git,则将它添加到 .gitignore )。

    许可证

    CocoaSeeds 在MIT许可下。 有关详细信息,请参阅许可证文件。


    GIT  ALT  Alter  coco  Cocoa  submodule  
    相关文章