依賴管理工具-Carthage

Carthage是一個致力于通過一種簡單的方式,來管理我們應(yīng)用的庫的工具。相較于CocoaPods,更輕量級、更容易上手。

使用CocoaPods的童靴一定遇到過這樣的問題,pod install or update一次以后,漫長的編譯就開始了。隨著項(xiàng)目組件化的開展,引入的pod越來越多這個編譯過程也隨之越來越長。有沒有辦法能夠適當(dāng)?shù)臏p少這一個過程?

項(xiàng)目升級到iOS8以后,Carthage的好處就呼之欲出。

先來看看Carthage如何使用?

簡單使用

  1. 新建一個Cartfile,列出你需要引用的framework。
  2. 運(yùn)行Carthage,根據(jù)Cartfile,編譯每一個庫。
  3. 將第二步產(chǎn)生的.framework拽到你的工程中。

從使用步驟可以看出,Carthage的作用主要是生成.framework,依賴還是要我們自己來處理。

為什么要使用Carthage?

  1. 通過Carthage可以將一部分不常變的庫打包成framework,再引如到主工程,這樣可以減少開發(fā)過程中的編譯時間。
  2. 可以將一些編譯時間很長的庫打包成framework。
  3. 國內(nèi)防火墻的緣故,有些庫的下載慢到一定境界,這個時候,使用Carthage就是福音了。
  4. 同時可以優(yōu)化CI的編譯、打包時間。

Carthage還有一個好處就是,可以與Cocoapods無縫對接。兩者可以同時使用。
當(dāng)然也有一些不那么友好的地方如:

  1. 需要手動引用庫
  2. 一些第三方庫還不支持Carthage
  3. 引入的庫只能看到頭文件,無法查看源碼等。

說了這么多,再來說說,具體怎么用?

安裝

直接通過brew進(jìn)行安裝。

brew update
brew install carthage

使用

  1. 新建Cartfile,引入需要安裝的庫。
/* ~>的使用與CocoaPods相同 */
/* 3.2.0為對應(yīng)的tag */
github "SnapKit/SnapKit" ~> 3.2.0
/* 通過url直接引用 */
github "https://******/test.git"
  1. carthage update根據(jù)Cartfile拉取代碼,并Build成對應(yīng)的.framework
    01.png

    在主工程目錄下,會生成一個Carthage文件夾,里面有兩個子文件夾
    |- Build 存放所有編譯完成的.framework文件
    |- Checkouts 存放源碼

通過--platform ios指定對應(yīng)平臺的framework,可以減少無畏的編譯時間,默認(rèn)是全平臺編譯。carthage update --platform ios

  1. 將Build中生成的庫拽入主工程中


    02.png
  1. 添加運(yùn)行腳本,/usr/local/bin/carthage copy-framewrks,并未每一個拽入主工程的framework添加一個Input Files和一個Output Files(ps: 圖最下一個紅框)

    03.png

  2. 添加Search Path


    04.png

以上,Build你的工程,可以享受Carthage給你帶來的快感了。

制作自己的Carthage庫

用過CocoaPods私有庫的同志一定會問,我們該怎么制作支持Carthage的庫呢?
簡單到難以置信

  1. 新建一個動態(tài)庫


    05.png
  2. 勾選schemes中,對應(yīng)scheme的shared


    06.png
  3. 引用
github "your git url"

是的,只要三步。

引用

CarthagePods —— 一個整合 CocoaPods 和 Carthage 一起使用的工具
I have a pod, I have a carthage, En...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容