一.CocoaPods是什么?
? ? CocoaPods是一個(gè)用ruby編寫,負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫的工具。CocoaPods節(jié)省設(shè)置和更新第三方開源庫的時(shí)間。
二.CocoaPods的下載及安裝
1、升級(jí)ruby環(huán)境
? ? ? ? ruby -v? 查看當(dāng)前ruby版本

? Ruby版本過低時(shí),需對(duì)Ruby進(jìn)行升級(jí)。升級(jí)過程如下:
(1)安裝RVM
RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem庫管理
$?curl?-Lget.rvm.io|?bash?-s?stable
等待一段時(shí)間后就可以成功安裝好 RVM。
$?source?~/.bashrc??
$?source?~/.bash_profile ?
測試是否安裝正常 ??rvm?-v

(2)用RVM升級(jí)Ruby
#查看當(dāng)前ruby版本
$ ruby -v
#列出已知的ruby版本
$ rvm list known

#安裝ruby 2.4.1
$ rvm install 2.4.1
安裝完成之后ruby -v查看是否安裝成功。

2、更新ruby鏡像
終端輸入如下命令(把Ruby鏡像指向ruby-china,避免被墻)
$ gem sources --remove?https://rubygems.org/?
$ gem sources -a? https://gems.ruby-china.org
$ gem sources -l??(用來檢查使用替換鏡像位置成功)
3、下載安裝CocoaPods
$ sudo?gem?install?cocoa pods ?如果一切正常,你應(yīng)該能看到一段安裝進(jìn)度
如果出現(xiàn)這個(gè)

說明沒有權(quán)限,需要輸入:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?$ sudo gem install -n /usr/local/bin cocoapods
安裝成功如下:

在終端中輸入:pod search AFNetworking
執(zhí)行后可能會(huì)一直停在 Setting up CocoaPods master repo,然后(很久)會(huì)出現(xiàn)如下錯(cuò)誤:

這說明CocoaPods還不能正常使用,需要更新pod,下載它的一些依賴包;在終端中輸入:
???$ pod setup ? 安裝本地庫
過一段時(shí)間之后,你會(huì)在終端中看到跟上面同樣的紅色的錯(cuò)誤信息。
這說明某些環(huán)境原因?qū)е聀od更新不了,可能原因有,1)gem版本太低;2)github無法鏈接;3).cocoapods目錄下的配置信息錯(cuò)誤。我們可以一個(gè)一個(gè)來排除,
1)首先更新gem到最新版本,在終端中輸入:
$?sudo?gem?update?--system? ?// 第一步已做過
2)然后檢查是否可以ping通github,在終端中輸入:
$?ping?github.com
或 $ ping -c 10 github.com 制定送出的數(shù)據(jù)包數(shù)目?
或 ctrl+c停止發(fā)送 ?ctrl+z暫停
3)然后查看pod repo list:
$?pod?repo?list
cd ~/.cocoapods,進(jìn)入cocoapods文件后在終端輸入:du -sh *,查看文件大小,結(jié)果顯示0 repos,說明沒有安裝成功;


重新執(zhí)行pod setup,過一段時(shí)間后提示setup completed。在終端中輸入 pod list,展示出安裝列表;
速度較快的方式:pod install --verbose --no-repo-update
這樣總算安裝好了。接下來再一次輸入:
pod search AFNetworking
輸入過后它可能會(huì)報(bào):
[!] Unable to find a pod with name, author, summary, or descriptionmatching `AFNetworking`
解決方案是:
輸入:rm ~/Library/Caches/CocoaPods/search_index.json
后在一次輸入:pod search AFNetworking就可以咯。
4、CocoaPods的使用
首先來到你的項(xiàng)目文件:? ? ? ?cd 項(xiàng)目文件的位置
然后,添加一個(gè)Podfile文件:vim Podfile
然后按 i?進(jìn)入插入模式,進(jìn)行編輯,在文件中輸入以下內(nèi)容:

輸入完成后按ESC退出編輯模式,最后輸入:wq保存并退出文件。此時(shí)可以發(fā)現(xiàn)在項(xiàng)目目錄下多了一個(gè)Podfile的文件,請(qǐng)注意這個(gè)文件必須與.xcodeproj在同一目錄下。
最后:pod install? / pod install --verbose --no-repo-update
強(qiáng)調(diào)一點(diǎn):Podfile文件的編輯,務(wù)必使用vim,防止編碼問題導(dǎo)致無法下載。

其他錯(cuò)誤:?
(1)出現(xiàn)如下警告
[!] Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.
解決辦法:不要使用文本編輯去編輯Podfile,使用Xcode編輯,或者使用終端敲命令去編輯。
(2) 執(zhí)行pod install 或pod update 命令后,updating local specsrepositories 卡住不動(dòng)
解決辦法:pod install 被墻了,換成新的命令pod install --verbose --no-repo-update
(3) 項(xiàng)目運(yùn)行時(shí)報(bào)錯(cuò):Thefile “Pods.xcconfig” couldn’t be opened because there is no such file.
解決辦法:pod update就可以了。
三、注意項(xiàng)
使用CocoaPods還需要注意以下幾點(diǎn):
1. 需要使用CocoaPods生成的 .xcworkspace 文件來打開工程,而不是以前的 .xcodeproj 文件。
2. 每次更改了Podfile文件,你需要重新執(zhí)行一次pod update命令。
3. 當(dāng)你執(zhí)行pod install之后,除了Podfile外,CocoaPods還會(huì)生成一個(gè)名為Podfile.lock的文件,你應(yīng)該把這個(gè)文件加入到版本管理中。因?yàn)镻odfile.lock會(huì)鎖定當(dāng)前各依賴庫的版本,之后如果多次執(zhí)行pod install?不會(huì)更改版本,要pod update才會(huì)改Podfile.lock了。這樣的好處是:當(dāng)多人協(xié)作的時(shí)候,可以保證所有人的第三庫環(huán)境是完全一樣的。