M1芯片Xcode13.4.1环境React Native iOS编译报错求助
解决M1芯片+Xcode 13.4.1下React Native模拟器运行FBReactNativeSpec构建失败问题
错误成因
- 架构兼容性冲突:M1芯片为arm64架构,Xcode 13.4.1的iOS模拟器默认尝试以arm64架构构建项目,但FBReactNativeSpec的生成脚本未适配该架构,导致执行报错。
- CocoaPods配置缺失:默认Podfile未设置排除模拟器的arm64架构,引发依赖构建时的架构不匹配。
- RN版本与Xcode适配问题:部分React Native版本(尤其是较旧版本)对Xcode 13.4.x的脚本执行环境支持不完善,导致Spec生成流程失败。
解决步骤
1. 通过Podfile统一配置架构排除
在项目的ios/Podfile中添加以下配置,避免手动修改每个Pod的设置:
post_install do |installer| # 给所有Pod项目排除模拟器的arm64架构 installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end # 可选:统一设置最低iOS版本,避免部分依赖版本冲突 installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.4' end end end
2. 重新安装依赖
执行以下命令清理并重新安装CocoaPods依赖:
cd ios pod deintegrate rm -rf Podfile.lock pod install
3. 清理Xcode缓存并重启
- 删除Xcode的DerivedData目录:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重启Xcode,按下
Cmd+Shift+K清理项目,再重新构建运行。
4. (可选)用Rosetta运行终端
如果上述步骤无效,尝试通过Rosetta兼容模式运行终端:
- 找到「终端」应用,右键选择「显示简介」,勾选「使用Rosetta打开」
- 重新打开终端,重复步骤2的依赖安装操作,再运行项目。
内容的提问来源于stack exchange,提问作者Mir Stephen
相关产品推荐
相关产品推荐

