CocoaPods是ios開發(fā)平臺一個非常流行的第三方庫管理工具。在開發(fā)過程中,根據(jù)項目復(fù)雜程度,通常我們會需要外鏈很多的第三方庫。而添加這些第三方庫的過程有時候會變成一場災(zāi)難。因此使用CocoaPods來代替我們管理這些庫,將可以大幅縮短我們的開發(fā)時間。
在使用CocoaPods的時候我們并不需要關(guān)注它的原理,簡單來講它相當于將github上的第三方庫checkout到你的項目工程目錄中,再直接將這些庫的鏈接添加到你的工程中。并且之后你也可以通過簡單的命令對這些庫進行更新。
以下就來了解一下CocoaPods的安裝過程以及使用方法:
1.環(huán)境配置
筆者使用的開發(fā)環(huán)境是Mac OS X 10.11,XCode 7.3。CocoaPods的安裝和使用需要有Ruby環(huán)境(Mac系統(tǒng)默認安裝了Ruby環(huán)境,如果系統(tǒng)沒有Ruby環(huán)境的可以去百度,有很多相關(guān)的文檔)。不確定自己系統(tǒng)中是否有Ruby的,可以在終端中輸入命令行:ruby -v查看當前ruby版本。
$ruby -v
ruby2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
如果確認系統(tǒng)中已經(jīng)有Ruby環(huán)境的,就可以繼續(xù)下面的安裝步驟了。
1.安裝
CocoaPods的安裝是非常簡單的,但是前提是你的網(wǎng)速夠快并且能繞過GFW(這就是為什么程序員必須要有vpn)。
確保網(wǎng)速夠快(能繞過GFW)的,可以直接執(zhí)行下面命令:
$sudo gem install cocoapods
如果執(zhí)行了這句命令以后,終端很長時間都沒有反應(yīng),那么就可以確定你沒有繞過GFW了。這樣的話你就需要按照以下步驟進行安裝了:
首先,檢查你的ruby源:
$gem sources -l
默認情況下,終端應(yīng)該返回如下信息:
*** CURRENT SOURCES ***https://rubygems.org/
當然這個源在墻內(nèi)是訪問不到的。因此我們需要尋找一個可以在國內(nèi)訪問到的鏡像。目前筆者找到的是http://rubygems-china.oss.aliyuncs.com這個阿里云的鏡像,當然隨著時間的推移,未來這個鏡像也有可能無法訪問了,到時候就只能重新尋找了。
確認鏡像可用后,現(xiàn)在就要開始修改ruby源了。首先執(zhí)行以下命令刪除原來的ruby源:
$gem sources --remove https://rubygems.org/
執(zhí)行命令后可在終端看見以下信息:
https://rubygems.org/ removedfromsources
然后下一步添加你找到的可用的鏡像源:
$gem sources -a http://rubygems-china.oss.aliyuncs.com
此時如果你再執(zhí)行g(shù)em sources -l命令,就能看到當前鏡像源里只有阿里云這一個了。此時你就可以重新執(zhí)行這一段開頭的那句命令了:
$sudo gem install cocoapods
如果一切正常,你應(yīng)該能看到一段安裝進度,以及最后有一條信息:
3 gems installed
確認看見這條信息,就說明你的安裝已經(jīng)成功了,接下去就可以開始準備在你的項目中使用CocoaPods了。
2.使用
CocoaPods的使用我們以一個ios上非常通用的AFNetworking為例。首先,你需要檢查你要添加的第三方庫是否支持CocoaPods。在終端中執(zhí)行以下命令:
$pod search AFNetworking
執(zhí)行以后你應(yīng)該能看到類似如下的一些關(guān)于AFNetworking庫的信息:

-> AFNetworking (3.1.0)
A delightful iOSandOS X networking framework.
pod'AFNetworking','~> 3.1.0'- Homepage: https://github.com/AFNetworking/AFNetworking- Source:? https://github.com/AFNetworking/AFNetworking.git- Versions: 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3,3.0.0-beta.2, 3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2,2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4,1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2,1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1[master repo]-Subspecs:- AFNetworking/Serialization (3.1.0)- AFNetworking/Security (3.1.0)- AFNetworking/Reachability (3.1.0)- AFNetworking/NSURLSession (3.1.0)- AFNetworking/UIKit (3.1.0)

確認AFNetworking庫支持CocoaPods后,接下去我們就可以開始做添加操作了。
首先在XCode中新建一個project,筆者在這里命名為CocoaPodsTest。然后,在終端中cd到你的project所在的目錄:
$cd /CocoaPodsTest
然后,執(zhí)行命令:
$vim Podfile
添加一個Podfile文件。然后按i進入插入模式,進行編輯,在文件中輸入以下內(nèi)容:
platform :ios,'8.1'pod'AFNetworking','~> 2.0'
輸入完成后按ESC退出編輯模式,最后輸入:wq保存并退出文件。此時可以發(fā)現(xiàn)在項目目錄下多了一個Podfile的文件,請注意這個文件必須與.xcodeproj在同一目錄下。
(眼尖的朋友可能已經(jīng)發(fā)現(xiàn)了,筆者這里使用的AFNetworking是2.0版本,而search出來的最新版本是3.1.0。這是為了下面執(zhí)行update方便而進行的設(shè)置,這里可以直接填3.1.0)
不要改變終端中的當前目錄,執(zhí)行以下命令:
$pod install
就可以在當前項目中添加CocoaPods支持。安裝完成后可以看到如下信息:

[!] Please close any current Xcode sessions and use `CocoaPodsTest.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 totalpod installed.

該信息表示CocoaPods已成功添加到當前項目中。同時“1 dependency from the Podfile”的意思就是Podfile文件中的AFNetworking庫也添加完畢。同時在項目目錄下你能發(fā)現(xiàn)多了Pods目錄以及一個.xcworkspace文件。上面[!]后面提示的信息表示你需要在XCode中關(guān)閉現(xiàn)在這個CocoaPodsTest.xcodeproj,并且以后使用CocoaPodsTest.xcworkspace文件打開工程。
這個時候你打開xcworkspace,應(yīng)該可以看見Pods已經(jīng)被添加到工程,并且在Pods組里面,也包含了AFNetworking庫。

這樣,我們就完成了CocoaPods從安裝到添加到工程的整個流程。而對于已經(jīng)使用了CocoaPods的工程,可以通過CocoaPods的update功能直接更新包含的第三方庫。
3.更新
CocoaPods可以非常簡單的使用update語句直接更新所有第三方庫,以下仍然使用AFNetworking為例。
首先,我們可以看到前面筆者使用的AFNetworking庫,是使用的2.0版本。然而pod search AFNetworking命令執(zhí)行的時候,能看到AFNetworking目前最新的版本是3.1.0。接下去我們就來看要如何將目前的第三方庫版本更新到最新的版本。
同樣先cd到項目目錄下,并且開始編輯Podfile文件:
$cd /CocoaPodsTest
$vim Podfile
將Podfile文件中AFNetworking這一行的2.0改成3.1.0:
platform :ios,'8.1'pod'AFNetworking','~> 3.1.0'
修改完成后,按ESC退出編輯模式,最后輸入:wq保存并退出文件。
然后回到終端,執(zhí)行以下命令就可以開始更新了:
$pod update
可以看到在返回的信息中有一行綠色的信息:
Installing AFNetworking 3.1.0 (was 2.6.3)
這就表示項目中的AFNetworking庫已經(jīng)更新到3.1.0版本了。
4.小結(jié)
CocoaPods的功能非常強大,更高級的使用需求可以訪問CocoaPods的官網(wǎng)https://cocoapods.org/?查找更多功能。另外在https://github.com/CocoaPods/CocoaPods/wiki?也可以獲得更多信息。
本文參考了
http://cnbin.github.io/blog/2015/05/25/cocoapods-an-zhuang-he-shi-yong/
http://code4app.com/article/cocoapods-install-usage
兩位分享的內(nèi)容,在這里致以誠摯的謝意。