Carthage-introduction

iOS

相信大家對於CocoaPods非常的熟悉,用的愛不釋手,那麼為什麼還要看一下Carthage呢?

在還沒有CocoaPods之類,大家都是用拖檔案,拖library進來,甚至是拖另一個專案到專案裡面來,記得還要
copy items if needed,有CocoaPods,只要幾行指令,就完成了所有的工作了,就連考試都得了一百分呢!!

Carthage與CocoaPods的不同在那裡呢?

首先,CocoaPods預設會自動產生具有dependency的workspace並且更新你的專案檔,Carthage則是使用xcodebuild來打包成framework,以方便引用,避免污染專案檔

再來,CocoaPods在每次編譯時,都會重新打包所有的pods,當使用第三方元件使用的多時,編譯就會變慢,有機會會差到幾十秒

最後,Carthage比CocoaPods好封裝多了,只要開一個Project/Framework,裡面的scheme設為shared就可以了

附帶一提的是 Carthage 的打包,可以不讓別人看到source code,這不知道要算優點還是缺點

1。安裝Carthage

Carthage提供OS X平台的pkg安裝文件,可以從Github的最新release中找到,按照指示一步步安裝即可。

2。新增framework到程式裡

安裝完Carthage後,你能够使用它来新增framework到你的專案裡。注意Carthage只支持dynamic framework(iOS8以上)。

3。執行

1
carthage update

和CocoaPods一樣,會將相依的資料抓到 Carthage/Checkouts 目錄下,並且編譯好

4。設定
在你的專案的target的[General][Embedded Binaries],將framework從Carthage.build裡拉進去。
(如果有git,也順便push上去,醬子其他人只要執行carthage bootstrap就能使用了。

5。update
如果變動了Cartfile,或者想升级到最新版本,執行carthage update命令就可以了。

6。檢查
如果編譯失敗的話,試著在命令列執行

1
xcodebuild -scheme SCHEME -workspace WORKSPACE build

1
xcodebuild -scheme SCHEME -project PROJECT build

其中大寫的地方要換成你的workspace或專案名稱, 有沒有很簡單?