以前我們都使用CocoaPods來管理第三方庫,CocoaPods是已存在很長時間的Cocoa依賴管理器,那么為什么要創建Carthage呢?
首先,CocoaPods默認會自動創建并更新你的應用程序和所有依賴的Xcode workspace。Carthage使用xcodebuild
來編譯框架的二進制文件,但如何集成它們將交由用戶自己判斷。CocoaPods的方法更易于使用,但Carthage更靈活并且是非侵入性的。
與之對照,Carthage創建的是去中心化的依賴管理器。它沒有總項目的列表,這能夠減少維護工作并且避免任何中心化帶來的問題(如中央服務器宕機)。不過,這樣也有一些缺點,就是項目的發現將更困難,用戶將依賴于Github的趨勢頁面或者類似的代碼庫來尋找項目。
CocoaPods項目同時還必須包含一個podspec
文件,里面是項目的一些元數據,以及確定項目的編譯方式。Carthage使用xcodebuild
來編譯依賴,而不是將他們集成進一個workspace,因此無需類似的設定文件。不過依賴需要包含自己的Xcode工程文件來描述如何編譯。
最后,我們創建Carthage的原因是想要一種盡可能簡單的工具——一個只關心本職工作的依賴管理器,而不是取代部分Xcode的功能,或者需要 讓框架作者做一些額外的工作。CocoaPods提供的一些特性很棒,但由于附加的復雜性,它們將不會被包含在Carthage當中。
安裝
brew install Carthage
使用
- 在你的項目目錄下創建Cartfile
vim Cartfile
- 加入第三方庫
github "Alamofire/Alamofire" ~> 3.0
github "SwiftyJSON/SwiftyJSON"
- 保存并關閉Cartfile,并執行更新
carthage update --platform iOS
- 將需要的framework文件拖到 Linked frameworks and Binaries內
就是這么簡單,目前來看Carthage已經要比CocoaPods好用很多了,不過最終來看,還是要使用Swift Package Manager的,畢竟官方出品。