對于一個項目從生產(chǎn)力的角度來說屑柔,我們都不能保證自己寫的每一行代碼是否在某種程度上重復(fù)的造"輪子".換言之對于通用的功能,如果有更好"輪子"可以用來替代和供我們選擇,那么管理好第三方包在項目中引用遠(yuǎn)比要重復(fù)造"輪子"要重要的多.
每種語言發(fā)展到一定階段都會產(chǎn)生一定依賴管理工具,例如C#中Nuget[讀作:New-Get]锈死,java中常用的Maven等.而對于iOS平臺來說則不得不提到CocoaPods.該項目從2011年8月12日開始至今贫堰,經(jīng)過數(shù)年的發(fā)展穆壕,雖然現(xiàn)在依然很多第三方依賴管理工具可以選擇,事實上CocoaPods儼然已經(jīng)成為iOS依賴管理的標(biāo)準(zhǔn)工具.從Github上針對iOS分類下富有影響力排名的項目對CocoaPods支持力度可見一斑.well,既然對于這個貌似沒的選的工具其屏,學(xué)會如何使用它就好.
安裝CocoaPods
CocoaPods是基于Ruby環(huán)境運行的喇勋,當(dāng)然Mac自身環(huán)境是自帶Ruby和Rvm的.至于如何安裝Ruby請自行Google,這里不再贅述.首先打開終端檢查Rvm和Ruby版本:
二者都是latest版本.首先通過如下命令安裝:
如果你發(fā)現(xiàn)突然很久沒有反應(yīng),問題原因也很簡單偎行,哪怕這是一個全球流行依賴管理工具依然避免被墻的命運川背,所以解決方案有二,自備VPN掛上蛤袒,或者通過淘寶的Ruby鏡像來訪問CocoaPods,這個就需要你對gem包來源[https://rubygems.org]更換成淘寶的熄云,操作如下:
更換完成后查看是否更換成功:
更換成功.重新安裝執(zhí)行CocoaPods安裝命名,過幾十秒順利安裝成功.
引用第三方框架
構(gòu)建項目時難免會用到很多第三方的庫或者框架,類似對iOS常見的AFNetworking網(wǎng)絡(luò)層封裝庫等妙真,大多情況是我們一個項目可能會使用多個[多則達(dá)20也是常見的]缴允,對于多個第三方庫依賴管理和自身庫版本更新維護就會很大的工作量,所以至于手工拷貝源碼到工程的方式隐孽,雖然操作簡單卻極容易出錯癌椿,其實完全可以采用CocoaPods工具把這塊功能管理做成自動化,盡量減少手工操作.
類似現(xiàn)在要在空的工程[CocoapodsDemo]中引入自動布局框架Masonry,一般在引入之前我們需要驗證一下當(dāng)前是否支持CocoaPods:
采用pod Search命令很快就能檢索到對應(yīng)框架版本結(jié)果.這說明Masonry是支持CocoaPods.而對于空白的工程來說菱阵,首先要加入對CocoaPods的支持,第一步需要創(chuàng)建一個Podfile文件(文件名不能變更踢俄,且無任何后綴).其實這個文件功能跟Visual Studio 中依賴包管理工具-Nuget中自帶Xml格式包描述文件是一樣的功能,它一般用來描述當(dāng)前工程使用那些類庫晴及,支持系統(tǒng)版本都办,以及目前項目引用類庫版本等信息.
首先打開終端進入項目根目錄[.xcodeproj文件所在文件目錄],通過Vim命名創(chuàng)建Podfile文件:
在Podfile文件輸入如下信息:
pod 'Masonry'
注意這里輸入信息,一般情況來自項目類庫安裝說明文檔,類似Masonry在Github主頁中關(guān)于采用CocoaPods安裝方法就是如上一段字符.有的類庫附帶有系統(tǒng)版本和平臺支持說明. 類庫名字后面也可能會指定固定版本號.具體情況根據(jù)類庫自身說明和項目需要的類庫版本自行決定.
輸入完成虑稼,按下"ESC"鍵琳钉,退回到命令行模式,在Vim采用:
:wq
命名強制保存退出.這時候你會發(fā)現(xiàn)項目根目錄中蛛倦,會出現(xiàn)一個名字為Podfile的文件歌懒,而且文件內(nèi)容就是剛剛輸入的. 這里值得注意的是,一般情況Podfile文件應(yīng)該和工程文件.xcodeproj在同一個目錄下.
建立Podfile文件成功后溯壶,這個時候執(zhí)行pod install就開始安裝Masonry框架到項目中來了:
其實執(zhí)行pod install命名時及皂,CocoaPods會讀取Podfile找到相關(guān)類庫下載并自動集成到項目中來.當(dāng)開始執(zhí)行安裝時你大多情況都會發(fā)現(xiàn)安裝流程會一直停留在:
Analyzing dependencies
這一項好久沒有動,這個問題原因是因為首次使用pod install命名時且改,系統(tǒng)也會默認(rèn)執(zhí)行pod setup.命令執(zhí)行時會升級CocoaPods的spec倉庫.關(guān)于Pod Setup具體坐了那些事情詳見這里.卡在這里不動原因也是毋庸置疑的验烧,Setup流程引用資源被墻掉了.針對這個情況除了掛上靠譜VPN,在墻內(nèi)還有兩種比較靠譜方式可以解決:
自行下載Setup文件:
因為CocoaPods托管在github上,可以自行下載Setup所需要的文件又跛,只要將文件夾名改為master碍拆,并將其拖到/Users/用戶名/.cocoapods/repos目錄下即可.
命令行忽略:
其實在pod install執(zhí)行命令時可以設(shè)置相應(yīng)參數(shù),規(guī)避每次執(zhí)行Setup更新spec倉庫的操作:
pod install --verbose --no-repo-update
只要能夠保證正常聯(lián)通github基本上稍等一段時間就能順利安裝成功.安裝成功后留意最后有一句提示的話:
[!] From now on use `CocoaPodsDemo.xcworkspace`.
意思是:因為引入新的Masonry框架,以后打開項目就用 CocoaPodsDemo.xcworkspace 打開,而不是之前的.xcodeproj文件.
重新打開空白的CocoaPodsDemo工程看一下項目結(jié)構(gòu)與以前做一下對比:
你會發(fā)現(xiàn)Masonry自動布局框架已經(jīng)自動安裝到項目工程中來.
同理如果我們在第三方平臺類似github看到比較好框架感混,或者要更新已有項目框架版本端幼,只需要找到對應(yīng)的Podfile執(zhí)行對應(yīng)update操作就能很好管理項目中使用到第三方庫.
Pretty Easy.