本文參考 唐巧的技術(shù)博客
CocoaPods的簡(jiǎn)介
每種語(yǔ)言發(fā)展到一個(gè)階段,就會(huì)出現(xiàn)相應(yīng)的依賴(lài)管理工具,例如 Java 語(yǔ)言的 Maven,nodejs 的 npm翼闹。隨著 iOS 開(kāi)發(fā)者的增多枫振,業(yè)界也出現(xiàn)了為 iOS 程序提供依賴(lài)管理的工具喻圃,它的名字叫做:CocoaPods。
CocoaPods項(xiàng)目的源碼 在 Github 上管理粪滤。該項(xiàng)目開(kāi)始于 2011 年 8 月 12 日斧拍,經(jīng)過(guò)多年發(fā)展,現(xiàn)在已經(jīng)成為 iOS 開(kāi)發(fā)事實(shí)上的依賴(lài)管理標(biāo)準(zhǔn)工具杖小。開(kāi)發(fā) iOS 項(xiàng)目不可避免地要使用第三方開(kāi)源庫(kù)饮焦,CocoaPods 的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開(kāi)源庫(kù)的時(shí)間。
CocoaPods的安裝
- mac下都自帶ruby窍侧,可以使用ruby的gem命令即可下載安裝
<pre><code>
*$ sudo gem install cocoa pods
*$ pod setup
</code></pre>
注意县踢,pod setup在執(zhí)行時(shí),會(huì)輸出Setting up CocoaPods master repo伟件,但是會(huì)等待比較久的時(shí)間硼啤。這步其實(shí)是 Cocoapods 在將它的信息下載到 ~/.cocoapods目錄下,如果你等太久斧账,可以試著 cd 到那個(gè)目錄谴返,用du -sh *來(lái)查看下載進(jìn)度。你也可以參考本文接下來(lái)的使用 cocoapods 的鏡像索引一節(jié)的內(nèi)容來(lái)提高下載速度
- 如果gem太老咧织,可能也會(huì)出現(xiàn)問(wèn)題嗓袱,可以使用如下命令升級(jí)gem
<pre><code>
$ sudo gem update --system
</code></pre>
- ruby的軟件源https://rubygems.org 因?yàn)槭褂玫膩嗰R遜的與服務(wù)(被墻了),所以需要更新ruby的源习绢,使用如下代碼將官方的ruby源替換成淘寶的源
<pre><code>
*$ gem sources --remove https://rubybems.org/ //移除官方源
$ gem sources -a https://ruby.taobao.org/ //添加淘寶源
*$ gem sources -l //羅列源
</code></pre>
- 如果ruby的版本低渠抹,這是需要使用RVM來(lái)升級(jí)ruby
1.安裝RVM (RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem庫(kù)管理(gems))
<pre><code>
$ curl -L get.rvm.io | bash -s stable
</code></pre>
2.等待RVM安裝好闪萄,輸入一下代碼
<pre><code>
** $ source ~/.bashrc
** $ source ~/.bash_profile
</code></pre>
3.顯示版本(測(cè)試是否安裝正常)
<pre><code>
$ rvm -v
</code></pre>
4.使用RVM升級(jí)ruby
<pre><code>
** $ ruby -v //查看當(dāng)前ruby的版本 ruby 1.8.7
** $ rvm list known //列出已知的ruby版本 **
** $ rvm install 2.2.4 //安裝ruby 2.2.4 **
** $ ruby -v //查看是否安裝成功
</code></pre>
CocoaPods的鏡像索引
- 所有的項(xiàng)目的 Podspec 文件都托管
https://github.com/CocoaPods/Specs
第一次執(zhí)行pod setup時(shí)梧却,CocoaPods 會(huì)將這些podspec索引文件更新到本地的 ~/.cocoapods/目錄下,文件比較大,又需要連接外網(wǎng)败去,下載十分緩慢
一個(gè)叫 akinliu 的朋友在 gitcafe 和 oschina 上建立了 CocoaPods 索引庫(kù)的鏡像放航,因?yàn)?gitcafe 和 oschina 都是國(guó)內(nèi)的服務(wù)器,所以在執(zhí)行索引更新操作時(shí)圆裕,會(huì)快很多广鳍。如下操作可以將 CocoaPods 設(shè)置成使用 gitcafe 鏡像:
<pre><code>
** $ gem repo remove master
** $ gem repo add master https://gitcafe.com/akuandev/Specs.git **
** $ gem repo update
</code></pre>
將以上代碼中的 https://gitcafe.com/akuandev/Specs.git 替換成 http://git.oschina.net/akuandev/Specs.git 即可使用 oschina 上的鏡像。
CocoaPods的使用
1.使用終端輸入以下代碼
<pre><code>
** $ cd "項(xiàng)目文件夾的地址(可直接將項(xiàng)目文件夾拖入終端獲得)"
** $ pod init (生成Podfile文件)
** $ vim Podfile (打開(kāi)Podfile文件)
</code></pre>
2.點(diǎn)擊按鍵“i”在Podfile中添加依賴(lài)庫(kù)的名字吓妆,點(diǎn)擊"esc"鍵退出編輯赊时,輸入":wq"退出并保存修改
3.在終端輸入命令
<pre><code>
** $ pod install //安裝依賴(lài)庫(kù) **
</code></pre>
注意:
(1)使用 CocoaPods 生成的 *.xcworkspace 文件來(lái)打開(kāi)工程,而不是以前的 *.xcodeproj 文件耿战。
(2)每次更改了 Podfile 文件蛋叼,你需要重新執(zhí)行一次pod update
命令焊傅。
使用CocoaPods查找第三方庫(kù)
使用"<pre><code>pod search "第三方庫(kù)名"</code></pre> " 命令查找第三方庫(kù)
關(guān)于 Podfile.lock
當(dāng)你執(zhí)行pod install之后剂陡,除了 Podfile 外狈涮,CocoaPods 還會(huì)生成一個(gè)名為Podfile.lock的文件,Podfile.lock 應(yīng)該加入到版本控制里面鸭栖,不應(yīng)該把這個(gè)文件加入到.gitignore中歌馍。因?yàn)镻odfile.lock會(huì)鎖定當(dāng)前各依賴(lài)庫(kù)的版本,之后如果多次執(zhí)行pod install不會(huì)更改版本要pod update才會(huì)改Podfile.lock了晕鹊。這樣多人協(xié)作的時(shí)候松却,可以防止第三方庫(kù)升級(jí)時(shí)造成大家各自的第三方庫(kù)版本不一致。
CocoaPods 的這篇 官方文檔 也在What is a Podfile.lock
一節(jié)中介紹了Podfile.lock
的作用溅话,并且指出:This file should always be kept under version control.