日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(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ù):2884次

移動端訪問不佳,請?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è)配合起來用也是很爽的^ - ^

初識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ǔ)充了下知識:

Carthage:迦太基(地中海地區(qū)古城),好吧這是百度百科的解釋,至于為何用這個(gè)單詞,我也不太清楚,可能比較屌吧,看下圖你就知道它是用來干甚么的了:

這里寫圖片描述

Carthage的目標(biāo)是用最簡單的方式來管理Cocoa第3方框架

是的,你沒看錯,它可以用來管理第3方庫Alamofire,然后查了1下,還有很多第3方庫都可以用它來管理,跟CocoaPods1樣可以用來管理第3方庫,看了1下它的突起時(shí)間大概是iOS8以后Swift出來的時(shí)候,與現(xiàn)在流行的 CocoaPods 不同,它是1個(gè)去中心化的解決方案。CocoaPods的方法更容易于使用,但Carthage更靈活并且是非侵入性的。

大家都知道Swift是支持動態(tài)庫的,所以Carthage應(yīng)勢而生,它沒有總項(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代表源,而后面的就是用戶名和版本庫的名字,而”~>” 后面是版本號哈!

保存退出,履行:

carthage update --platform iOS #由于是打包iOS的所以后面加iOS,有的庫支持mac、watch的話會打幾個(gè)包

以后會發(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)勢與劣勢

優(yōu)勢

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

劣勢

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

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

優(yōu)勢

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

劣勢

  • 庫仍然不如 CocoaPods 豐富:雖然很多庫不需要聲明并改造就直接可以被 Carthage 用,但仍然有大量 CocoaPods 能用的庫不支持,我相信時(shí)間能解決這個(gè)問題;
  • 只支持 Framework,所以是 iOS 8 Only 了,隨著時(shí)間推移,這個(gè)也不會是問題;
  • 沒法在 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些變動比較大,自己還有可能去修改的庫我們肯定首選CocoaPods。最后希望大家看到這篇博客能學(xué)到東西,大家有問題可以提出來,謝謝大家的瀏覽~~

參考鏈接

http://www.jianshu.com/p/5ccde5f22a17

https://imtx.me/archives/1939.html

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产日产久久高清欧美一区 | 一区二区网站 | 久久美女| 国产精品日韩欧美一区二区 | 一区在线免费 | 色婷婷综合久久久中字幕精品久久 | 成人在线视频网址 | 成年免费视频 | 一级二级在线观看 | 国产精品久久久久一区二区三区 | 亚洲国产精品一区二区第一页 | 精品成人在线视频 | 99av在线 | 日韩在线三级 | 久久视频一区 | 在线一区 | 亚洲精品一区二区三区99 | 欧美一区二区三区久久精品 | 国产精品视频一区二区三区四区五区 | 第一福利视频网站 | 欧美日韩第一页 | 91久久 | 欧美日韩综合精品 | 国产又爽又黄免费视频 | 亚洲一二三区视频 | 欧美精品一区二区免费 | 日韩欧美一 | 久久免费高清 | 久久综合亚洲 | 久久成年人视频 | 在线观看中文字幕一区 | 亚洲一区久久 | 欧美不卡一区二区三区 | 日本欧美在线观看 | 一区二区高清在线 | 亚洲精品高清在线 | 久热伊人| 欧美日韩亚洲一区二区三区 | 性色av一区二区三区 | 波多野结衣的一级片 | 成人欧美一区二区 |