1仇穗、了解Cocoapods
CocoaPods是iOS項(xiàng)目的依賴(lài)管理工具奠衔,該項(xiàng)目源碼在Github上管理(github.com/CocoaPods/Specs)谆刨,一般我們iOS項(xiàng)目都要使用第三方開(kāi)源庫(kù),CocoaPods能節(jié)省很多設(shè)置和第三方開(kāi)源庫(kù)的時(shí)間归斤。CocoaPods的原理是將所有的依賴(lài)庫(kù)都放到另一個(gè)名為Pods的項(xiàng)目中痊夭,然后讓主項(xiàng)目依賴(lài)Pods項(xiàng)目,這樣脏里,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中她我。
2、CocoaPods的安裝
CocoaPods可以方便地通過(guò)Mac自帶的RubyGems安裝。但是番舆,由于本人電腦比較老(2010年中的)酝碳,Mac系統(tǒng)又升級(jí)到了最新的,這樣的話一般需要升級(jí)下ruby才能使接下來(lái)的步驟不報(bào)錯(cuò)恨狈,打開(kāi)命令行工具輸入curl -L get.rvm.io | bash -s stable 等待一段時(shí)間后就可以成功安裝好 RVM疏哗,測(cè)試下是否安裝正常rvm -v 然后用RVM升級(jí)Ruby,先查看下當(dāng)前ruby版本 ruby -v 列出已知的ruby版本 rvm list known
安裝新的ruby rvm install 2.3.3(這里需要說(shuō)明下為什么不安裝最新的2.4.0版本禾怠,因?yàn)榘惭b2.4.0版本時(shí)間很長(zhǎng)返奉,而且這個(gè)網(wǎng)速使翻墻網(wǎng)速,就算你家里寬帶再高也是沒(méi)用的吗氏,而2.3.3版本不是很大芽偏,也是能用的,可用節(jié)省很多時(shí)間)牲证,安裝完成之后ruby -v查看是否安裝成功哮针。
接下來(lái)需要更新下ruby的源(這是因?yàn)閞uby原始軟件源rubygems.org因?yàn)槭褂脕嗰R遜的云服務(wù)关面,被我國(guó)屏蔽了)坦袍,過(guò)程如下:
$ gem sources -l (查看當(dāng)前ruby的源)
$ gem sources --remove?https://rubygems.org/
$ gem sources -a https://gems.ruby-china.org/(之前的https://ruby.taobao.org/淘寶源沒(méi)有更新不能用了)
$ gem sources -l (查看是否替換成功)
如果gem太老,可以嘗試用如下命令升級(jí)gem
$ sudo gem update --system
升級(jí)成功后會(huì)提示: RubyGems system software updated
然后重新執(zhí)行安裝下載命令 sudo gem install cocoapods 這時(shí)候應(yīng)該沒(méi)什么問(wèn)題了
接下來(lái)進(jìn)行安裝等太,執(zhí)行: pod setup? 會(huì)停留在 Setting up CocoaPods master repo 這個(gè)狀態(tài)一段時(shí)間,是因?yàn)橐M(jìn)行下載安裝,而且目錄比較大,需要耐心等待一下.如果想加快速度,可使用cocoapods的鏡像索引(但是現(xiàn)在gitcafe上的鏡像https://gitcafe.com/akuandev/Specs.git 地址不對(duì)了捂齐,所以還是老老實(shí)實(shí)等著吧),當(dāng)出現(xiàn)Setup completed 時(shí)說(shuō)明已經(jīng)完成了缩抡。
3奠宜、CocoaPods的使用
cd進(jìn)入工程所在的目錄,執(zhí)行pod init 這個(gè)時(shí)候會(huì)自動(dòng)生成Podfile文件瞻想,格式內(nèi)容如下
# Uncomment the next line to define a global platform for your project (這個(gè)是注釋?zhuān)?br>
platform :ios, '8.0' ?(運(yùn)行最低版本號(hào))
target 'CocoaPodsTestDemo' do (執(zhí)行程序名压真,默認(rèn)加載)
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks! (是否執(zhí)行動(dòng)態(tài)庫(kù),默認(rèn)是關(guān)閉的蘑险,上面的注釋是解釋這個(gè)的)
pod ‘AFNetworking’, ‘~>3.1.0’ (指定加載三方庫(kù)版本)
pod ‘SDWebImage’ (不指定則默認(rèn)加載最新版本)
pod ‘MJRefresh’ (還可以用pod search MJRefresh 搜索出所有版本)
# Pods for CocoaPodsTestDemo
end
寫(xiě)上需要的第三方庫(kù)后保存執(zhí)行命令pod install (首次最后執(zhí)行這個(gè))滴肿,這樣就默認(rèn)下載完成并且設(shè)置好了編譯參數(shù)和依賴(lài),以后使用的時(shí)候注意兩點(diǎn):佃迄,
1.以后需要使用Cocoapods生成的.xcworkspace文件來(lái)打開(kāi)工程泼差,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新執(zhí)行一次pod update命令
當(dāng)執(zhí)行pod install之后呵俏,除了Podfile堆缘,還會(huì)生成一個(gè)名為Podfile.lock的文件,它會(huì)鎖定當(dāng)前各依賴(lài)庫(kù)的版本普碎,之后即使多次執(zhí)行pod install也不會(huì)更改版本吼肥,只有執(zhí)行pod update才會(huì)改變Podfile.lock.在多人協(xié)作的時(shí)候,這樣可以防止第三方庫(kù)升級(jí)時(shí)候造成大家各自的第三方庫(kù)版本不一致。所以在提交版本的時(shí)候不能把它落下潜沦,也不要添加到.gitignore中.
4萄涯、CocoaPods的使用中的問(wèn)題
網(wǎng)上有很多這樣那樣的問(wèn)題,可以直接把報(bào)錯(cuò)粘貼在百度上查找唆鸡,基本可以解決涝影,這里就不多說(shuō)了。