最近換新電腦了,在安裝cocoapods的時候遇到了一點兒麻煩,特此記錄
1.查看你的ruby源
gem sources -l
輸入上面的命令以后,你會得到一下結(jié)果
*** CURRENT SOURCES ***
https://rubygems.org/
這一步是切換ruby的鏡像源,mac默認的源地址是rubygems.org,但是這個地址在天朝是不能用,好在咱們有萬能的淘寶
update - 2016-11-28:現(xiàn)在淘寶的鏡像不維護了,改用https://gems.ruby-china.org
2.切換ruby源到ruby-China
gem sources —remove https://rubygems.org
gem sources -a https://gems.ruby-china.org
3.安裝cocoapods
sudo gem install -n /usr/local/bin/cocoapods
如果你的系統(tǒng)低于10.11版本,可以使用一下命令
sudo gem install cocoapods
在這一步很可能會出現(xiàn)下面這么一個惡心的東西:
activesupport requires Ruby version >= 2.2.2
他告訴你,想要安裝cocoapods,ruby的版本必須高于2.2.2,那么就只能升級ruby,命令如下:
sudo gem install activesupport -v x.x.x
// 后面的版本號只要高于2.2.2就行了
這個時候,你再去運行上面的安裝命令,就可以成功安裝的,有些同學使用WiFi來安裝,有時候網(wǎng)絡不穩(wěn)定,可能會等的比較久,耐心等待就好了
update 2017.2.13
等你修改或者升級好了gem版本以后,你還可能遇到下面這種問題

fuzzy_match庫安裝錯誤,簡直不能忍了,一步步的折磨人...這個問題是因為路徑問題,你只需要指定
match的安裝位置就行了改換成下面??這條命令
sudo gem install -n /usr/local/bin cocoapods
有的同學可能會想到另一個問題,我換了路徑以后,之前安裝的是不是要刪掉(強迫癥患者),不用擔心,gem會復用之前裝好的東西的。
4.設(shè)置pod倉庫
pod setup
這里也有一個坑,那就是當你輸入這個命令的時候,會出現(xiàn)這樣幾個提示:
Setting up CocoaPods master repo
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
Cloning into 'master'...
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
而且一片紅色,很讓人心火大。其實呢,第一次使用setup命令的時候并不會出現(xiàn)這樣的東西,但是有人不能等或者等了好久覺得可能不行了,然后關(guān)掉窗口,終止了,這樣你以后打開窗口再次使用setup命令的時候,就會一直出現(xiàn)上面那幾句提示。這個時候,你可以先移除之前的設(shè)置,然后找個網(wǎng)絡比較好的地方,繼續(xù)setup!
sudo rm -fr ~/.cocoapods/repos/master
// 移除命令
5.測試是否安裝成功
等setup那一步成功以后,會出現(xiàn)一個綠色的Setup completed!然后使用下面命令測試是否成功.如果成功,則會直接顯示一行數(shù)字版本號,那么就可以開始上手開發(fā)了...
關(guān)于如何使用,那么請出門左轉(zhuǎn),看看這篇文章,很詳細的講解了如何使用cocoapods
6.有時候cocoapods會抽風
有時候,你明明沒有動過cocoapods,可他就是壞了,不能用了,比如你在執(zhí)行pod install的時候可能見到過下面這種問題
[!] Unable to satisfy the following requirements:
- `Firebase/Core` required by `Podfile`
None of your spec sources contain a spec satisfying the dependency: `Firebase/Core`.
You have either:
* out-of-date source repos which you can update with `pod repo update`.
* mistyped the name or version.
* not added the source repo that hosts the Podspec to your Podfile.
Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.
看到這么火紅的一片錯誤,你甚至連把這些信息看完的心情都沒有,更別說還是英文的(好吧,無意中透露了什么東西??)...
而且,這個問題更詭異的地方在于,你在Podfile里面導入的相應版本庫,他找不到,我擦~~~
github上明明已經(jīng)更新到某個版本了,你就是從README里面copy出來的,你堅信自己只按了Ctrl + C -> Ctrl + V,難道cocoapods出軌了?WTF?
這個問題的原因在于,你的cocoapods太久沒有更新了,以至于版本落后太多...
去更新到最新版本是你的唯一選擇,執(zhí)行下面這個命令來更新到最新的版本:
// 更新到最新的預覽版,一次到底
sudo gem install cocoapods --pre
嗯,就是這樣,此時你可以安心的放下鼠標等勝利了??
然而,有些同學的電腦可能還是不行,因為cocoapods在本地的緩存
莫慌,執(zhí)行下面這段萬能的命令:
// 移除本地master
sudo rm -fr ~/.cocoapods/repos/master
// 移除本地緩存
sudo rm -fr ~/Library/Caches/CocoaPods/
// 重新setup,如果網(wǎng)速較慢,可以在后面加上 --verbose
pod setup
嗯,差不多了
如果你在setup這一步等了很久,很久,很久,久......
請把該文章網(wǎng)上翻,看第五點
7.Swift3.0問題
又是swift3.0,最近一直在解決這個家伙的問題,各種升級
在cocoapods里面它有時候也會引起問題,在你執(zhí)行pod install命令的時候,會出現(xiàn)很長一段文字警告信息
好吧,不啰嗦了,直接上方法:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
嗯,是的,就這么辦...
如果還是不行,呃...
請出門右拐,看這篇文章
8.搜索到的庫版本過低
很多時候,我們會通過search命令搜索github上的repos,找到合適的repo以后直接復制pod 'xxx'
然而這里很多時候我們搜索到的庫,版本其實低于其真正的版本,因為這個搜索其實對本地緩存好的search list進行索引的,而這個索引是在安裝cocospod時候的數(shù)據(jù),期間某個repo的作者可能更新了
解決這個問題的方法就是更新本地的`list數(shù)據(jù),命令如下:
pod repo update
9.更新pod版本問題 - update 17.06.06
有時候你收到pod的更新提示,它會告訴你使用下面命令更新
sudo gem install cocoapods
然后你就happy的copy then paste, then
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
WTF?造成這個問題的原因是,pod安裝的時候沒有指定路徑,就被裝在了默認的/bin下面,所以只需要指定路徑就行了
sudo gem install -n /usr/local/bin cocoapods
當然你也可以自定義路徑,之后就可以happy的使用sudo gem install cocoapods來更新
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:$HOME/Sofware/ruby/bin
$ pod --version
生命不息,折騰不止...
I'm not a real coder,but i love it so much!