M1芯片Mac执行npx react-native init时CocoaPods依赖安装失败如何解决
M1芯片Mac React Native初始化CocoaPods失败及编译报错解决方案
问题根因
M1系列芯片的架构兼容性是问题核心:
- 系统默认自带的Ruby为arm64架构,与部分CocoaPods依赖的原生库适配性不足,导致pod install执行失败
- CocoaPods依赖未安装完成时,iOS项目缺失必要的依赖文件,直接运行就会触发main.m、AppDelegate.m相关的编译报错
修复步骤
第一步:解决CocoaPods依赖安装失败问题
- 卸载当前所有版本的CocoaPods,避免版本冲突
sudo gem uninstall cocoapods -a brew uninstall cocoapods
- 使用RVM管理独立的Ruby版本,规避系统Ruby的权限和兼容问题
# 安装RVM curl -sSL https://get.rvm.io | bash -s stable # 重启终端后执行以下命令,安装适配性最好的2.7.6版本Ruby rvm install 2.7.6 # 设置为默认Ruby版本 rvm use 2.7.6 --default
- 重新安装CocoaPods及配套依赖
gem install cocoapods gem install ffi
- 进入项目iOS目录执行依赖安装
cd 你的项目名/ios pod install --repo-update
如果上述操作执行后仍报错,右键点击终端图标,选择「显示简介」,勾选「使用Rosetta打开」,重启终端后重新执行pod install命令即可。
第二步:解决iOS端编译失败问题
- 打开项目iOS目录下后缀为
.xcworkspace的文件(禁止打开后缀为.xcodeproj的文件,否则会缺失Pod依赖) - 选中项目根目录,进入「Build Settings」页签
- 找到
Excluded Architectures选项,在Debug和Release模式下都添加arm64,对应值设置为「Any iOS Simulator SDK」 - 找到
Architectures选项,设置为Standard Architectures (arm64, x86_64)
- 找到
- 按下
Command + Shift + K快捷键清理Xcode缓存,重新运行项目即可正常编译
注意事项
- 不要直接使用Mac系统自带的Ruby执行CocoaPods相关操作,自带Ruby的权限限制和架构问题会大概率引发安装失败
- 初始化React Native项目前需确认Xcode命令行工具已正确配置,配置路径为:Xcode > Settings > Locations > Command Line Tools,选择当前安装的Xcode版本即可
- 执行pod install时如果提示权限错误,不要添加sudo执行,切换RVM管理的Ruby版本即可解决权限问题
内容的提问来源于stack exchange,提问作者Patrick89
相关产品推荐
相关产品推荐

