移動(dòng)端訪問不佳,請(qǐng)?jiān)L問我的個(gè)人博客
最近在研究Swift,1不謹(jǐn)慎發(fā)現(xiàn)1個(gè)好的的管理iOS第3方庫Carthage,就跟第1次使用CocoaPods時(shí)1樣興奮不已,在研究了大半天后終究能用了,使用起來還是很方便的,比起CocoaPods有不足也有優(yōu)點(diǎn),兩個(gè)配合起來用也是很爽的^ - ^
最近在用Swift3.0做項(xiàng)目,想導(dǎo)入1些支持Swift3.0的第3方庫來使用,就想到Alamofire,看README時(shí)發(fā)現(xiàn)了1個(gè)新的名詞Carthage,What?,這是個(gè)甚么東西,竟然也能夠用它來管理第3方庫,之前都沒見到過,趕快百度了1下補(bǔ)充了下知識(shí):
Carthage:迦太基(地中海地區(qū)古城),好吧這是百度百科的解釋,至于為何用這個(gè)單詞,我也不太清楚,可能比較屌吧,看下圖你就知道它是用來干甚么的了:
Carthage的目標(biāo)是用最簡單的方式來管理Cocoa第3方框架
是的,你沒看錯(cuò),它可以用來管理第3方庫Alamofire,然后查了1下,還有很多第3方庫都可以用它來管理,跟CocoaPods1樣可以用來管理第3方庫,看了1下它的突起時(shí)間大概是iOS8以后Swift出來的時(shí)候,與現(xiàn)在流行的 CocoaPods 不同,它是1個(gè)去中心化的解決方案。CocoaPods的方法更容易于使用,但Carthage更靈活并且是非侵入性的。
大家都知道Swift是支持動(dòng)態(tài)庫的,所以Carthage應(yīng)勢(shì)而生,它沒有總項(xiàng)目的列表,這能夠減少保護(hù)工作并且避免任何中心化帶來的問題)。不過,這樣也有1些缺點(diǎn),就是想修改第3方庫源碼的話很費(fèi)力,還需要重新編譯打包。
首先到github上Download或Clone Git 或使用HomeBrew(沒有安裝的可以自行百度去裝1個(gè))安裝~
brew update #先更新
brew install carthage #安裝Carthage
當(dāng)你安裝好Carthage后,在終端履行來判斷是不是安裝成功:
carthage version
便可看到當(dāng)前的Carthage版本, 當(dāng)我寫這篇文章的時(shí)候,Carthage的版本為0.18(還是很年輕的嘛) 。
現(xiàn)在,你已安裝好了Carthage,接下來就是在你的項(xiàng)目中使用carthage了:
vim Cartfile #創(chuàng)建1個(gè)叫Cartfile的文件
輸入你想要編譯成Framework的Swift第3方庫,比如說SnapKit和Alamofire,以下所示:
github "Alamofire/Alamofire" ~> 4.0 #支持Swift3.0
github "SnapKit/SnapKit" ~> 3.0 #支持Swift3.0
github代表源,而后面的就是用戶名和版本庫的名字,而”~>” 后面是版本號(hào)哈!
保存退出,履行:
carthage update --platform iOS #由于是打包iOS的所以后面加iOS,有的庫支持mac、watch的話會(huì)打幾個(gè)包
以后會(huì)發(fā)現(xiàn)在跟目錄下多出了Carthage文件夾和Cartfile.resolved文件。進(jìn)入Carthage/Checkouts下可以看到剛剛得到的Alamofire和SnapKit,以下圖所示:
現(xiàn)在打開你的項(xiàng)目,點(diǎn)擊project,選擇target, 再選擇上方的General,將需要的framework文件拖到 Linked frameworks and Binaries內(nèi):
然后這是很重要的1步,點(diǎn)擊Build Phrase tab選項(xiàng),添加相應(yīng)的run script:
/usr/local/bin/carthage copy-frameworks
$(SRCROOT)/Carthage/Build/iOS/你的framework
然后就能夠去項(xiàng)目里面import
你得第3方庫了~~可以愉快的使用了,不過有1點(diǎn)要吐槽1下`build
的速度真是有點(diǎn)慢- . -
我覺得不管怎樣,好不好用,做為iOS程序員我們都應(yīng)當(dāng)去嘗試的了解1下它,通過它去學(xué)到更多的東西,至于甚么第3方庫用CocoaPods,甚么去用Carthage,我覺得1些比較穩(wěn)定大的庫可以用Carthage,而1些變動(dòng)比較大,自己還有可能去修改的庫我們肯定首選CocoaPods。最后希望大家看到這篇博客能學(xué)到東西,大家有問題可以提出來,謝謝大家的瀏覽~~
http://www.jianshu.com/p/5ccde5f22a17
https://imtx.me/archives/1939.html