macOS安裝 cocoapods1.9.1失敗Failed to build gem native extension

最近團隊內升級cocoapods到1.9.0。原本我簡單的以爲執行sudo gem install cocoapods 來更新。萬萬沒想到。
執行多次都是:ERROR: Error installing cocoapods: ERROR: Error installing cocoapods:

Building native extensions. This could take a while...
ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.

通過各方搜索得出以下結論
Ruby版本過低目前cocoapods依賴的ruby版本高於macOS自帶的Ruby版本,需要手動升級ruby。(我的電腦版本Mojava macOS 10.14.6)
安裝cocoapods的條件 Xcode -> Homebrew ->rvm -> ruby -> Cocoapods(rvm是管理Ruby版本的工具)
當我準備升級ruby時,終端執行rvm --version發現 命令找不到,猜想可能是ruby是系統自帶(提醒不要刪除系統自帶的ruby支持,否則你怎麼死的都不知道),沒有通過rvm安裝。接下來我準備安裝rvm時,發現Homebrew當前版本又不符合要求。所以就進行了整條線升級。

Homebrew升級失敗

  1. 通過brew update失敗, 我是通過brew upgrade 成功升級
  2. 如果brew upgrade也失敗,建議你卸載重裝

rvm不存在

通過終端命令rvm -v準備查看rvm版本,發現命令找不到。那本地就沒有安裝咯。
那就安裝咯

curl -sSL https://get.rvm.io | bash -s stable

等待幾分鐘,完成後
載入rvm環境

 source ~/.rvm/scripts/rvm

通過rvm -v查看是否安裝成功

rvm -v
rvm 1.29.9 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

安裝Ruby環境

查看一致ruby版本

rvm list known

安裝目標版本

rvm install ruby-版本號

安裝過程一般需要等比較久,如果此步驟失敗,請檢查homebrew是否可以升級,請升級最新的。
指定爲系統默認ruby版本

rvm use 2.6 --default

由於默認源不可用,所以需要切換爲國內的https://gems.ruby-china.com/

// 移除 rubygems.org
gem source -r https://rubygems.org/
//更新爲ruby china
gem sources -a https://gems.ruby-china.com/

升級Cocoapods

在確保ruby 爲2.6版本之後,可以通過rvm list查看

rvm list
 * ruby-2.6.3 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

即可執行sudo gem install cocoapods升級Cocoapods到1.9.0。當然你有可能只需要處理上面中任意一種情況就可以升級了。比如只需要升級ruby。

重啓終端pod --version變爲原來版本

在安裝完Ruby之後,我查看了升級pod成功爲1.9.1後,之後關閉終端,pod版本又變回1.8.4。怎麼回事了?
查看ruby 版本,發現使用的是1點幾,又回去啦?
後來發現重啓終端之後會使用系統自帶的Ruby環境,自然pod也是之前版本。
在參考了每次打開終端,當前使用的 ruby 版本會變回系統版本,設置了 default 好像也沒什麼作用,如何解決mac 10.8 下默認 ruby 版本問題之後依然無效。
所以直接在用戶目錄下的.bash_profile添加rvm use 2.6 --default來保證每次啓動的終端Ruby環境都是使用rvm的2.6,而不是系統自帶ruby.

參考

Cocoapods1.9.0 cannot install on Mojava 10.14.6–github-issues
Installing cocoapods on macOS Mojava --apple.stackexchange 提供解決方案
mac安裝Cocoapods遇到的問題和解決辦法 全套解決辦法
MAC_Ruby安裝 安裝rvm和ruby

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章