Carthage

Carthage 是一個套件管理的開源軟體,可以使用 Homebrew 安裝:

brew install carthage

和 CocoaPods 的差異在於它並不會將第三方的 Framework 直接加入專案, 而是獨立在外,並在 build 的時候直接將 framework 複製進去到 App 內; CocoaPods 的話則會在每次 build 的時候同時 build 你所匯入的 framework, 而隨著專案使用到的套件內容越多,則會花越多時間。

去中心化

這個詞最近隨著區塊鏈的爆紅,也常常可以看見。 不過在這邊的情境是,CocoaPods 是由它那邊搜集很多個 repo,提供給我們來安裝; 所以若 CocoaPods 的 repo 資料沒更新,或是作者只放在 GitHub 上,沒有提交到 CocoaPods 的話, 則無法使用。 而 Carthage 則沒有這方面的問題,可以自行將 GitHub 上的專案加入到 Cartfile

github "ReactiveX/RxSwift"

不過這也是比較麻煩的地方,我們就沒有辦法像 CocoaPods 一樣直接在 Terminal 下 pods search RxSwift 來取得資訊。

個人的使用方式

由於我自行在開發,同時會有很多個專案用到相同的 framework(e.g RxSwift、Siren), 原本若是使用 CocoaPods 的話,則會在很多資料夾內都有一樣的東西; 而 Carthage 的話,則是將 FRAMEWORK_SEARCH_PATHS 都指定到同一個資料夾即可, 並在 Build phase 加上 Carthage 的 Run script。 而我大多數只會開發 iOS 的 App,Carthage update 的時候則可以只更新 iOS 的部分:

carthage update --platform iOS=
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus