Carthage的目標是用最簡單的方式來管理Cocoa第三方框架
使用 xcodebuild 工具來編譯依賴項目成二進制 Framework,再引入到項目中去。原理是自動幫你把工程編譯為Dynamic framework(動態庫),僅支持iOS8以上
Carthage只支持動態框架庫,iOS8以上,對swift的三方庫支持最好。
編譯成framework的問題,在一般的公司開發中,比較重視代碼管理和項目可維護性的,都會將三方庫與核心代碼封裝成framework,提供給不同的業務開發使用,以保證代碼穩定性與修改提交的粗粒度,比方說,你維護的核心代碼,如果是以不同版本的framework提供出來的,這樣代碼發生變動,你必須重新生成新版的framework,業務開發在使用的時候,如果發生問題,可追溯版本,也可以回退到穩定版本的framework,這種做法是有好處的。
cocoapods是中心化的三方庫管理工具,需要開發者將代碼提供到中心服務器,Carthage是去中心化的,使用git托管第三方庫,這樣的好處在于可以替換三方庫的來源。
基本的工作流程:
1.創建一個 Cartfile 文件,寫好你要哪些依賴庫
2.執行 carthage update 命令拉取源代碼并編譯為 Framework
3.把編譯后的 .framework 拖到項目中去即可 (官方是這么說的,不過更好的辦法是把 Carthage 編譯的 Framework 路徑加入到 Build Setting 中的 Framework Search Path,詳情見后文)
配置:
$ brew update
$ brew install carthage
使用:
在你的項目目錄下,新建一個文件名字為Cartfile,內容為:
github "onevcat/Kingfisher" ~> 1.8
carthage update
執行update 之后的文件目錄為
Cartfile文件用來標注你需要哪些依賴庫,對應版本或者 Git 分支 (需要提交到 Git)
Cartfile.resolved文件用來跟蹤項目當前所用的依賴版本號,為了保持多端開發一致 (需要提交到 Git)
Carthage文件夾用來存放依賴庫的源文件和編譯后的文件 (不需要提交到 Git)
- Build
- iOS
- Alamofire.framework
- Mac
- Alamofire.framework
- Checkouts
- Alamofire
- ...
xxx.xcodeproj
...
當xcode更換時報錯 ?sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
讓已有工程支持Carthage
詳細介紹的文章鏈接:http://www.lxweimin.com/p/bf263c596538
轉自文/Neo_joke(簡書作者)
原文鏈接:http://www.lxweimin.com/p/3cdec4dc1d1c
isaced:原文鏈接http://www.isaced.com/post-265.html