Carthage是一個致力于通過一種簡單的方式亚斋,來管理我們應用的庫的工具隙弛。相較于CocoaPods,更輕量級喧伞、更容易上手蝶涩。
使用CocoaPods的童靴一定遇到過這樣的問題,pod install or update一次以后絮识,漫長的編譯就開始了绿聘。隨著項目組件化的開展,引入的pod越來越多這個編譯過程也隨之越來越長次舌。有沒有辦法能夠適當?shù)臏p少這一個過程熄攘?
項目升級到iOS8以后,Carthage的好處就呼之欲出彼念。
先來看看Carthage如何使用挪圾?
簡單使用
- 新建一個Cartfile,列出你需要引用的framework逐沙。
- 運行Carthage哲思,根據(jù)Cartfile,編譯每一個庫吩案。
- 將第二步產(chǎn)生的
.framework
拽到你的工程中棚赔。
從使用步驟可以看出,Carthage的作用主要是生成
.framework
徘郭,依賴還是要我們自己來處理靠益。
為什么要使用Carthage?
- 通過Carthage可以將一部分不常變的庫打包成framework,再引如到主工程残揉,這樣可以減少開發(fā)過程中的編譯時間胧后。
- 可以將一些編譯時間很長的庫打包成framework。
- 國內(nèi)防火墻的緣故抱环,有些庫的下載慢到一定境界壳快,這個時候,使用Carthage就是福音了镇草。
- 同時可以優(yōu)化CI的編譯眶痰、打包時間。
Carthage還有一個好處就是陶夜,可以與Cocoapods無縫對接凛驮。兩者可以同時使用。
當然也有一些不那么友好的地方如:
- 需要手動引用庫
- 一些第三方庫還不支持Carthage
- 引入的庫只能看到頭文件条辟,無法查看源碼等黔夭。
說了這么多宏胯,再來說說,具體怎么用本姥?
安裝
直接通過brew進行安裝肩袍。
brew update
brew install carthage
使用
- 新建
Cartfile
,引入需要安裝的庫婚惫。
/* ~>的使用與CocoaPods相同 */
/* 3.2.0為對應的tag */
github "SnapKit/SnapKit" ~> 3.2.0
/* 通過url直接引用 */
github "https://******/test.git"
-
carthage update
根據(jù)Cartfile
拉取代碼氛赐,并Build成對應的.framework
。
在主工程目錄下先舷,會生成一個Carthage文件夾艰管,里面有兩個子文件夾
|- Build 存放所有編譯完成的.framework文件
|- Checkouts 存放源碼
通過
--platform ios
指定對應平臺的framework,可以減少無畏的編譯時間蒋川,默認是全平臺編譯牲芋。carthage update --platform ios
-
將Build中生成的庫拽入主工程中
-
添加運行腳本,
/usr/local/bin/carthage copy-framewrks
捺球,并未每一個拽入主工程的framework添加一個Input Files
和一個Output Files
(ps: 圖最下一個紅框)
-
添加Search Path
以上缸浦,Build你的工程,可以享受Carthage給你帶來的快感了氮兵。
制作自己的Carthage庫
用過CocoaPods私有庫的同志一定會問裂逐,我們該怎么制作支持Carthage的庫呢?
簡單到難以置信
-
新建一個動態(tài)庫
-
勾選schemes中泣栈,對應scheme的shared
- 引用
github "your git url"
是的卜高,只要三步。
引用
CarthagePods —— 一個整合 CocoaPods 和 Carthage 一起使用的工具
I have a pod, I have a carthage, En...