軟硬件環(huán)境:
-
Xcode:9.1
-
macOS:10.12.6
重裝cocopods的時(shí)候每個(gè)人遇到的問(wèn)題可能不同,大部分人遇到或者沒(méi)遇到的問(wèn)題我都碰到了(好慘??)叨橱,關(guān)于我遇到的問(wèn)題及找到的解決方案特在此分享出來(lái)邻奠,避免更多的人走彎路劫拗,也希望自己下次再遇到同樣問(wèn)題時(shí)能快速回憶起解決方案阅羹。
在一個(gè)新創(chuàng)建的項(xiàng)目中使用cocopods管理第三方庫(kù)勺疼,pod init創(chuàng)建Podfile文件并添加對(duì)應(yīng)的第三方庫(kù)后,執(zhí)行pod install命令捏鱼,遇到了“Abort trap: 6”的提示信息,這就需要我們升級(jí)cocopods了执庐。
sudo gem uninstall cocoapods
sudo gem install cocoapods --pre
以上兩個(gè)命令分別是卸載和安裝cocopods,在執(zhí)行第二個(gè)命令的時(shí)候我遇到了第一個(gè)問(wèn)題:YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).,這個(gè)問(wèn)題在后來(lái)執(zhí)行其他命令的時(shí)候也多次遇到导梆。應(yīng)該是因?yàn)閞uby版本過(guò)低轨淌,要安裝更高版本的ruby。
-
rvm方法安裝Ruby
接下來(lái)我開(kāi)始升級(jí)ruby看尼,步驟如下:
- 查看當(dāng)前ruby版本
ruby -v //一般2.0.0
- 升級(jí)ruby環(huán)境递鹉,需要通過(guò)rvm安裝(也可以通過(guò)rbenv安裝,后邊也會(huì)說(shuō)到)藏斩,安裝rvm需要依次執(zhí)行以下命令
curl -L get.rvm.io | bash -s stable
source ~/.bashrc=
source ~/.bash_profile
- 列出ruby可安裝的版本信息
rvm list known
- 安裝一個(gè)ruby版本
rvm install 2.4.1
- 設(shè)置為默認(rèn)版本
rvm use 2.4.1 --default
以上應(yīng)該是通過(guò)rvm正常更新ruby環(huán)境的步驟躏结,幸運(yùn)的同學(xué)更新成功之后就可以更換ruby鏡像并安裝cocopods。但是T肿隆4芫酢!我是那個(gè)很不幸的同學(xué)北专,在第4步安裝提示以下錯(cuò)誤No binary rubies available for: osx/10.12/x86_64/ruby-2.4.1.:
No binary rubies available for: osx/10.12/x86_64/ruby-2.4.1.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
為了解決這個(gè)問(wèn)題,找了很多方案旬陡,在stackoverflow上也查了很久拓颓,不過(guò)能別人用了能解決問(wèn)題的辦法,在我這都不行(攤手)描孟。在這里附上我在stackoverflow找到的上關(guān)于這個(gè)問(wèn)題的鏈接驶睦,里面有解決方案 #3686,#4007匿醒,里面也有提及到關(guān)于這個(gè)問(wèn)題的其他issue场航,在這幾個(gè)issue里面看回復(fù)也會(huì)看到其他的解決方案,有興趣的同學(xué)可以認(rèn)真看看這幾個(gè)issue廉羔,也全當(dāng)復(fù)習(xí)英語(yǔ)了??溉痢。以下為一個(gè)developer遇到并提供的解決方案:
-
rbenv方法安裝Ruby
But!!孩饼!
看了所有的回復(fù)和評(píng)論髓削,也嘗試了其他人提到的解決方案,我的還是不行镀娶,沒(méi)辦法立膛,最后改用通過(guò)rbenv安裝ruby。以下是用rbenv解決步驟梯码,主要是按照這篇文章進(jìn)行安裝的宝泵。
1.首先要安裝Homebrew,打開(kāi)命令行執(zhí)行以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
在安裝Homebrew同樣遇到了問(wèn)題:The remote end hung up unexpectedly,可能是因?yàn)楸粔Φ脑蛐ⅲ诓橘Y料的時(shí)候看到有同學(xué)是通過(guò)掛VPN解決了鲁猩,但是我窮??,沒(méi)有VPN罢坝。通過(guò)把Mac的DNS改成8.8.8.8同樣完美解決??廓握。
Tip: 如果是通過(guò)修改DNS為8.8.8.8,記得問(wèn)題解決之后把DNS改回去嘁酿,否則可能會(huì)引起其他意想不到的問(wèn)題隙券,我是連不上公司的SVN服務(wù)器了,在其他人都沒(méi)有問(wèn)題的情況下很顯然是我這邊的問(wèn)題闹司,恢復(fù)DNS之后立馬可以連上娱仔。
- 因?yàn)橐胷benv安裝Ruby,安裝完Homebrew之后開(kāi)始安裝rbenv
brew install rbenv ruby-build
安裝ruby的時(shí)候提示我要安裝Xcode命令行工具游桩,根據(jù)提示進(jìn)行安裝即可牲迫。工具安裝完成之后再次執(zhí)行brew install rbenv ruby-build命令安裝rbenv。
- 開(kāi)始安裝ruby
rbenv install 2.4.2
rbenv global 2.4.2
ruby -v //查看當(dāng)前ruby的版本
使用ruby -v查看當(dāng)前ruby版本的時(shí)候借卧,應(yīng)該是我們最新設(shè)置默認(rèn)版本盹憎,此處應(yīng)該是2.4.2,如果是我們?cè)O(shè)置的版本就沒(méi)問(wèn)題铐刘,可以開(kāi)始更新ruby鏡像陪每。
However~~,我安裝成功并設(shè)置默認(rèn)版本之后镰吵,任然是2.0.0??(雖然我不死心的試了兩遍):
查資料檩禾,使用以下命令可以更改默認(rèn)的ruby版本
rbenv local 2.4.2
執(zhí)行完之后再查看ruby版本已經(jīng)修改
這個(gè)時(shí)候就可以更新ruby鏡像了??。
-
更新Ruby鏡像
由于之前使用的是https://ruby.taobao.org/疤祭,而taobao Gems 源已停止維護(hù)盼产,現(xiàn)由 ruby-china 提供鏡像服務(wù)
- 首先把ruby升級(jí)到最新
sudo gem update --system
- 查看當(dāng)前Ruby鏡像
gem sources -l
- 添加ruby-china鏡像
gem sources -a https://gems.ruby-china.org/
執(zhí)行這個(gè)命令的時(shí)候,又遇到問(wèn)題了ERROR: While executing gem ... (Errno::EACCES) Permission denied - /Users/xxxx/.gemrc勺馆,如下:
解決方案是打開(kāi)finder戏售,command+shift+G輸入路徑,/Users/pan/.gemrc找到.gemrc文件侨核,直接刪除(就是這么暴力??),再次執(zhí)行添加ruby-chin鏡像的命令蜈项,成功芹关!
- 刪除原來(lái)的ruby鏡像,我原來(lái)的ruby鏡像是https://ruby.taobao.org/,不知道是不是更新ruby的原因紧卒,后來(lái)變成了https://rubygems.org/
gem sources --remove https://rubygems.org/
刪除完之后再次使用gem sources -l命令查看會(huì)發(fā)現(xiàn)只有ruby-china一個(gè)鏡像侥衬,接下來(lái)可以安裝cocopods。
-
安裝cocopods
- 安裝本地庫(kù)
sudo gem install -n /usr/local/bin cocoapods
- 安裝本地庫(kù)(這個(gè)過(guò)程可能會(huì)巨慢跑芳,請(qǐng)耐心等待轴总,不知道是不是前邊經(jīng)歷了太多的曲折,所有的運(yùn)氣都攢在這一步博个,竟然用時(shí)兩分鐘完成??;痴痢)
pod setup
到此為止,重裝cocopods已經(jīng)全部完成盆佣,可以新建Xcode項(xiàng)目使用往堡。由于有些問(wèn)題沒(méi)有截圖保存,寫(xiě)的有點(diǎn)亂共耍,見(jiàn)諒虑灰,如有錯(cuò)誤請(qǐng)指正。??