多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > [置頂] iOS開發(fā)進(jìn)階 - 使用Carthage管理iOS第三方庫

[置頂] iOS開發(fā)進(jìn)階 - 使用Carthage管理iOS第三方庫

來源:程序員人生   發(fā)布時(shí)間:2016-11-29 08:41:10 閱讀次數(shù):2877次

移動(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è)配合起來用也是很爽的^ - ^

初識(shí)Carthage

最近在用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)力,還需要重新編譯打包。

安裝和使用Carthage

首先到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方庫,比如說SnapKitAlamofire,以下所示:

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下可以看到剛剛得到的AlamofireSnapKit,以下圖所示:

這里寫圖片描述現(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)慢- . -

CocoaPods的優(yōu)勢(shì)與劣勢(shì)

優(yōu)勢(shì)

  • 使用方便,除編寫 Podfile 之外其他幾近都是自動(dòng)完成;
  • 軟件包數(shù)量多,主流支持;
  • 支持 iOS 8 Framework,固然也支持舊的靜態(tài)編譯;
  • 開發(fā)者使用比較簡單,但是如果創(chuàng)建兼容 CocoaPods 的庫,就會(huì)相對(duì)繁瑣1些(雖然有了命令行)~

劣勢(shì)

  • 每次clean后都得重新編譯,編譯比較耗時(shí),Archive也會(huì)變慢;
  • 每次更新環(huán)境都需要連接到中心倉庫,比較耗時(shí)~

Carthage的優(yōu)勢(shì)與劣勢(shì)

優(yōu)勢(shì)

  • build1次后就可以在項(xiàng)目里面使用,增加編譯速度;
  • 可以與CocoaPods無縫集成;
  • 它是去中心化的,沒有中心服務(wù)器,這意味著每次配置和更新環(huán)境,只會(huì)去更新具體的庫,而不會(huì)有1個(gè)向中心服務(wù)器獲得最新庫的索引這么個(gè)進(jìn)程,如此1來,又省了很多時(shí)間;
  • 不會(huì)影響你的項(xiàng)目配置的,相對(duì)CocoaPods而言更加獨(dú)立,Carthage 使用的是1種非侵入性的哲學(xué);

劣勢(shì)

  • 庫仍然不如 CocoaPods 豐富:雖然很多庫不需要聲明并改造就直接可以被 Carthage 用,但仍然有大量 CocoaPods 能用的庫不支持,我相信時(shí)間能解決這個(gè)問題;
  • 只支持 Framework,所以是 iOS 8 Only 了,隨著時(shí)間推移,這個(gè)也不會(huì)是問題;
  • 沒法在 Xcode 里定位到源碼:如果你在寫代碼進(jìn)程中,想跳轉(zhuǎn)到1個(gè)第3方庫去看具體的實(shí)現(xiàn),這是沒法辦到的,Carthage 的配置只能讓你看到1個(gè)庫的頭文件~

總結(jié)

我覺得不管怎樣,好不好用,做為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

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲欧美日韩另类精品一区二区三区 | 国产精品视频白浆免费视频 | 成人区精品一区二区不卡亚洲 | 日本xxxⅹ色视频在线观看网站 | 在线亚洲小视频 | wwxxxxx免费 | a级午夜| 亚洲精品自拍视频 | 黑人疯狂做人爱视频 | 国产高清免费不卡观看 | 国产精品原创永久在线观看 | 图片区小说校园 | 成人免费体验区福利云点播 | 在线观看成年人免费视频 | 4四虎44虎www在线影院麻豆 | 91精品国产福利在线观看性色 | 午夜岛国| 免费激情视频网站 | 波多野结衣xxxx性精品 | 美国免费高清一级毛片 | 最近中文字幕资源4 | 老司机在线观看 | 日本成人黄色网址 | 无码日韩精品一区二区免费 | 国产免费一区二区三区在线 | 97午夜理伦片在线影院 | 理论亚洲区美一区二区三区 | 欧美中文字幕一区 | 亚州毛色毛片免费观看 | 亚洲欧美日本人成在线观看 | 日韩美女福利视频 | 日本不卡一区二区三区在线观看 | 成人国产精品久久久免费 | 国产精品v欧美精品∨日韩 国产精品v欧美精品v日本精 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲国产综合视频 | 天堂亚洲网 | 九色最新 | 国内精品18videosex性欧美 | 97精品国产91久久久久久 | 沈樵在线观看福利 |