M1 Mac安装CocoaPods后执行pod命令提示找不到gem问题问询
你观察到的bin目录和lib目录路径差异不是故障原因,RVM管理的Ruby环境默认就是可执行文件存放在对应版本的bin目录、gem依赖和核心库存放在同版本的lib目录,这个报错的核心原因是RVM环境下gem路径索引失效,叠加M1芯片Mac上Ruby预编译包的架构兼容问题,导致可执行文件找不到对应的gem实体。
修复步骤
- 先校验当前终端激活的Ruby版本和pod绑定的版本匹配,执行:
rvm current
如果输出结果不是ruby-2.7.4,执行rvm use 2.7.4 --default切换到对应版本,关闭当前终端重新打开后再测试pod命令。 - 版本匹配仍报错的话,先彻底清理残留的损坏安装文件:
# 卸载所有已安装的cocoapods相关组件,所有确认提示输入y回车 gem uninstall -aIx cocoapods # 清空当前gemset的缓存 rvm gemset empty - M1芯片设备不要直接安装RVM提供的预编译Ruby 2.7.4二进制包,这类包普遍存在架构兼容问题,执行以下命令重新从源码编译安装Ruby:
# 先确保homebrew已经安装openssl@1.1 brew install openssl@1.1 # 源码编译安装Ruby 2.7.4 rvm reinstall 2.7.4 --with-openssl-dir=$(brew --prefix openssl@1.1) --disable-binary - 重新安装cocoapods,禁止加sudo执行,RVM环境下用sudo会把gem安装到系统目录,直接打乱RVM的路径索引:
gem install cocoapods -v 1.11.3
1.11.3版本对MacOS 12 Monterey和M1芯片的兼容性最佳,不会出现后续pod install的ffi兼容报错。 - 安装完成后执行
pod -v验证,正常输出版本号即修复完成。如果仍提示找不到gem,执行rvm reset重置RVM环境变量,重启终端即可。
注意事项
不要使用Mac系统自带的/usr/bin/ruby安装cocoapods,系统Ruby受SIP权限保护,安装gem时极易出现权限不足、路径错乱的问题,RVM管理的独立用户级Ruby环境是iOS开发场景下最稳定的方案。
内容的提问来源于stack exchange,提问作者ntocampos
相关产品推荐
相关产品推荐

