我的系統是mac,然后今天在安裝eventmachine的時候發現的報了錯誤,安裝命令為:
sudo gem install cocoapods:
錯誤信息為
參考地址:https://blog.csdn.net/u013538542/article/details/104660924
我主要是新買的macbook pro,安裝了XCode 11,然后就遇到這個安裝Cocoapods的錯誤,之前從來沒有遇到過
后來經過了各種搜索后,解決思路和辦法如下:
重點
在macOS 10.14
上安裝了Xcode 11
,也需要安裝了Xcode command line tools
$ sudo xcode-select --install
增加了一個接受證書的環節
$ sudo xcodebuild -license accept
這個問題主要是因為Xcode 11 攜帶了macOS 10.15 SDK,該SDK包含了ruby 2.6的頭文件,但是對macOS 10.14系統的ruby 2.3卻沒有該文件,所以你可以通過一下命令來驗證問題
$ ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
這個命令在macOS 10.14系統上,Xcode 11版本安裝的情況下會打印出這個不存在的路徑
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
然后,Xcode 11是安裝在macOS 10.14 SDK上,在此路徑/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk 。但是它沒有必要因為安裝了舊的頭文件而污染了系統目錄。所以我們要改成,指定合適的SDK和ruby 2.3頭文件
sudo xcode-select --switch /Library/Developer/CommandLineTools
然后,我們再來看下ruby 2.3的正確路徑
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
這次就會輸出一個正常的存在的路徑
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
所以,現在,gem install就可以正常使用了
現在可以愉快的安裝cocoapods吧
$ gem install cocoapods
安裝完后,檢查下版本
$ pod --version
輸出
1.9.0
注意:
在cocoapods 執行 sudo gem install cocoapods 的時候出現 While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.
改為 sudo gem install -n /usr/local/bin cocoapods 即可
注意:
如果想改回之前使用的XCode 11 SDK,就使用此命令
$ sudo xcode-select --switch /Applications/Xcode.app
必要的情況下,導入以下兩個環境變量,寫入到~/.zshrc文件里
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH