Mac M1设备React Native项目iOS端Pod安装报错问题求助
M1芯片Mac CocoaPods安装失败修复方案
两个报错的核心原因:
- ffi安装报权限错误,是因为调用了Mac系统自带的Ruby 2.6环境,该目录受系统完整性保护(SIP)锁定,即便加sudo也没有写入权限,所有往系统Ruby路径安装gem包的操作都会触发这个错误。
- CocoaPods报bad interpreter错误,是因为之前通过Homebrew安装的CocoaPods关联的Ruby路径被删除或改动,软链接失效,pod命令找不到对应Ruby解释器。
分步修复操作
- 清理旧的无效残留文件
先删除之前失效的pod命令和Homebrew版旧CocoaPods:sudo rm -rf /opt/homebrew/bin/pod brew uninstall --force cocoapods - 安装独立Ruby环境,替换系统自带Ruby
不要使用Mac系统预置的Ruby环境做开发,直接通过Homebrew安装独立维护的Ruby版本,从根源规避系统目录权限问题:
安装完成后把Homebrew版Ruby的路径加到终端环境变量里,Mac默认用zsh终端的话直接执行以下命令:brew install ruby
如果你用的是bash终端,把上面命令里的echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc source ~/.zshrc.zshrc替换成.bash_profile即可。
配置完成后执行which ruby验证,返回结果为/opt/homebrew/opt/ruby/bin/ruby就说明环境配置正确,不再调用系统目录下的Ruby。 - 重新安装CocoaPods和ffi依赖
此时不需要加sudo,M1原生环境直接执行安装命令即可:
安装完成后执行gem install cocoapods gem install ffipod --version,能正常输出版本号就说明CocoaPods基础环境修复完成。 - 项目内重新执行pod安装
进入项目的ios目录,先清理旧的pod关联缓存再重新安装依赖:cd 你的项目根目录/ios pod deintegrate pod install
要是执行pod install时仍提示架构兼容错误,可以在命令前加
arch -x86_64前缀执行,即arch -x86_64 pod install,此时用的是独立Ruby环境,不会再触发之前的系统目录权限报错。
内容的提问来源于stack exchange,提问作者M.Kalidass
相关产品推荐
相关产品推荐

