环境如下 os: macOS Monterey 12.6, XCode 14.2
执行命令:
sudo xcode-select -s /Applications/Xcode.app sudo xcode-select --install sudo gem install -n /usr/local/bin cocoapods
从输出可以看出:编译原生插件失败,原因是没有找到ruby.h这个头文件。在终端下cd到 /System/xxxxx/usr/lib/ruby目录下,没有找到include目录。它提示:安装ruby开发环境!
macOS都会自带ruby的,但这个版本可能会过时。
首先你需要检查本地的ruby版本,执行命令:
ruby –v # 检查本地安装的ruby版本
通常ruby是通过rvm(ruby version manager)的工具来安装的。所以在安装ruby之前你需要先安装rvm!
curl -L https://get.rvm.io | bash -s stable ## 安装rvm
安装rvm可能会由于网络原因报错,安装失败!https://get.rvm.io 这个地址对应着一个脚本:https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer ,需要把该文件下载下来保存到本地,命名为rvm-installer.sh,然后在本地执行:
chmod 777 rvm-installer.sh sh rvm-installer.sh
rvm安装结束后,执行以下命令检查是否安装成功:
source ~/.rvm/scripts/rvm #载入rvm环境 rvm -v # 查看rvm版本
rvm list known ## 列出可以安装的版本 rvm list ## 列出已经安装的版本 rvm install 2.6 ## 安装2.6版本
注意,在执行安装ruby开发环境前,请先设置ruby的源为国内镜像,否则其安装过程十分缓慢,而且期间连接有可能会中断。设置ruby国内源:
echo "ruby_url=https://cache.ruby-china.com/pub/ruby" > ~/.rvm/user/db
注意:此处的网址为 cache.ruby-chian.com 而不是 cache.ruby-chian.org ,网上有资料提示为后者网址,但其官网为前者地址。
开始安装ruby 2.6。
在配置好国内镜像地址的前提下,只有几分钟就安装完成了。
到这里ruby安装好了,再回到前面的问题,在命令行下执行:
sudo gem install -n /usr/local/bin cocoapods
不一会儿就可以看到cocoapods安装完成了。
另外一种方式是安装brew,然后通过brew安装cocoapods,这种方式也是可行的!brew的安装方式与rvm的安装方式类似,安装国内版本,则没有网络问题!安装brew后执行:
brew install cocoapods
打开Xcode 14.2编译项目时,发现它只支持arm64,不再支持arm7,不得已回退Xcode到13.4.1版本,该版本的XCode在macOS Monterey 12.6上是可用的。
在我给另外一台mac配置cocoapods时发现:macOS Monterey 12.6 + Xcode13.4.1 这样的环境下,根本就不需要另外安装ruby。执行本文开始的那三条命令,就可以成功安装cocoapods!
cocoapods安装好了之后,终端执行:
pod setup
参考以及感谢网友们的无私贡献:
https://www.rubyonmac.dev/error-error-installing-cocoapods-error-failed-to-build-gem-native-extension
https://blog.csdn.net/LQMIKU/article/details/105047498
https://zhuanlan.zhihu.com/p/481802103
https://stackoom.com/en/question/4J4S1