相信最近很多iOS開發(fā)的小伙伴Xcode都升級到了8.1,但是隨著升級帶來的坑也很多.其中我們開發(fā)中比較依賴的第三方庫管理工具Cocoapods這時候在新升級的Xcode菜單欄中卻消失了,剛開始我也沒有很在意,覺得大不了用命令行來操作.但是實際操作中卻發(fā)現(xiàn),當用pod install --no-repo-update來集成某個國內(nèi)框架的時候,發(fā)現(xiàn)半天都沒有反應(yīng),集成國外的主流框架就很快,至于為什么會這樣我也有點摸不清頭腦,沒辦法,只能升級安裝Cocoapods了.安裝Cocoapods的過程也絕對有很多坑.發(fā)現(xiàn)按照以往常見的方式安裝已經(jīng)不行.經(jīng)典的安裝步驟如下:
1.先升級Gem
sudo?gem?update?--system
2.切換cocoapods的數(shù)據(jù)源
先刪除ruby數(shù)據(jù)源
gem?sources?--removehttps://rubygems.org/
數(shù)據(jù)源轉(zhuǎn)換為國內(nèi)淘寶
gem?sources?-ahttps://ruby.taobao.org/
?查看當前數(shù)據(jù)源
gem?sources?-l
3.安裝cocoa pods
sudo?gem?install?cocoapods
如果上面的sudo gem install cocoapods安裝失敗,可以嘗試用下面的語句代替試試
sudo?gem?install?-n?/usr/local/bin?cocoapods
4.將Podspec文件托管地址從github切換到國內(nèi)的oschina
【先刪除蜈项,再添加煤惩,再更新】
pod?repo?remove?master
pod?repo?add?masterhttp://git.oschina.net/akuandev/Specs.git
pod?repo?add?masterhttps://gitcafe.com/akuandev/Specs.git
pod?repo?update
5.設(shè)置pod倉庫
pod?setup
6.測試
【如果有版本號堂飞,則說明已經(jīng)安裝成功】
pod?--version
悲劇的是,當把數(shù)據(jù)源由國外的ruby轉(zhuǎn)換到國內(nèi)淘寶時,就出現(xiàn)了令人蛋疼的錯誤:
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
報錯信息相信很多人也能看懂:沒有找到可用的openssl,需要安裝openssl或者找一個http不安全協(xié)議的數(shù)據(jù)源.而國內(nèi)淘寶的源gem sources -ahttps://ruby.taobao.org/協(xié)議是https的.如果直接換成gem sources -ahttp://ruby.taobao.org/會直接報404找不到.這時候我也搜了很多的資料,折騰了2天,終于功夫不負有心人,我找到了解決的方案.既然缺少的是openssl,那么我就按照它的提示來,先搞定openssl的安裝.這個安裝過程也有點蛋疼,具體步驟如下:
在你的終端依次執(zhí)行下面的指令,注意:每一步都要執(zhí)行成功后再執(zhí)行下一個命令
rvm get stable
brew update
brew doctor
brew install openssl
rvm install ruby-2.3.3 ?最好安裝目前最新的ruby版本,目前最新的就是2.3.3
rvm use ruby-2.3.3
rvm gemset create jekyll
gem install jekyll
給大家一點提示:在安裝這些命令的過程中,我也是遇到了問題的,首先有可能會報錯,但是這時候大家不要慌,按照錯誤提示去做就好了.比如剛開始的時候可能就會報找不到某個文件或者路徑,這時候你只需要按照提示打開finder,點擊前往,把錯誤提示內(nèi)文件路徑補齊就可以安裝了.我在安裝到最后一步gem install jekyll時還是報錯了,這個錯誤我一直沒解決,幸運的是,它已經(jīng)不足以影響我們安裝Cocoapods了.當你執(zhí)行成功除了最后一條語句以外的所有指令.這時候你就可以回到上面的第2步開始操作了,這時就不會報可惡的openssl錯誤了.剩下的就是按照步驟來安裝升級即可.
到這里,本來以為萬無一失了,但是最后pod setup的時候,還是又報錯了,錯誤信息如下:
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
Cloning into 'master'...
error: RPC failed; curl 56 SSLRead() return error -9845
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
但是這個錯誤相對來說就親切多了,經(jīng)過驗證,這個是我自己的網(wǎng)絡(luò)慢,而且不穩(wěn)定造成的,由于執(zhí)行pod setup實際上是從github上下載cocoapods的依賴庫文件,這些文件一般都有幾百兆,所以網(wǎng)絡(luò)不好的話,就會可能出現(xiàn)上面的情況.我自己是經(jīng)過了多次失敗,pod setup了無數(shù)次,后來網(wǎng)絡(luò)給力點就成功了.如果大家的環(huán)境真的不穩(wěn)定可以換個網(wǎng)絡(luò)好點的環(huán)境去安裝,或者也有人說可以直接去github上面下載,下載完成后再拷貝到對應(yīng)的Cocoapods文件夾中,這一步我本來也想嘗試的,但是網(wǎng)絡(luò)太垃圾,一直下載不完,所以就沒有繼續(xù),想嘗試這種方式的兄弟可以參照:http://blog.csdn.net/samoy/article/details/51956799