M1芯片Mac上React Native iOS模拟器构建报错:缺失x86_64架构
解决M1 MacBook Pro上React Native iOS模拟器架构构建问题
我之前帮不少开发者搞定过M1 Mac上React Native模拟器的架构冲突问题,你的情况太典型了,咱们一步步来排查修复:
第一步:彻底清理缓存与Pods残留
旧的缓存和Pods配置很可能是问题根源,先做彻底清理:
- 打开终端,进入项目的ios目录:
cd ios - 删除Pods文件夹、Podfile.lock和Xcode派生数据:
rm -rf Pods Podfile.lock rm -rf ~/Library/Developer/Xcode/DerivedData - 重新安装Pods:
pod install
第二步:检查Xcode架构配置
确保项目和Pods项目的架构设置完全统一:
- 打开Xcode的
.xcworkspace文件(务必不要打开.xcodeproj) - 选中项目根节点,进入「Build Settings」标签:
- 找到「Architectures」,设置为
Standard Architectures (arm64, x86_64)或者$(ARCHS_STANDARD) - 找到「Excluded Architectures」,分别为
Debug和Release配置添加:- 针对
iphonesimulator平台,设置值为arm64
- 针对
- 找到「Build Active Architecture Only」,确保Debug模式为
YES,Release模式为NO
- 找到「Architectures」,设置为
- 同样的操作也应用到Pods项目上:选中左侧导航栏的
Pods项目,重复上述架构设置步骤
第三步:优化Podfile的post_install脚本
你之前的脚本只覆盖了Pods项目的全局配置,试试这个更全面的版本,确保每个target都正确设置架构:
post_install do |installer| # 为每个Pods Target单独设置架构排除规则 installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" config.build_settings["ARCHS[sdk=iphonesimulator*]"] = "$(ARCHS_STANDARD)" end end # 全局Pods项目的架构设置 installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end
修改后重新执行pod install生效。
第四步:处理OpenSSL-Universal的特殊问题
你遇到的第一个报错就和这个库相关,它在M1上的兼容性容易出问题:
- 尝试升级库版本,在Podfile里指定兼容版本:
pod 'OpenSSL-Universal', '~> 1.1.1100' - 如果还是不行,执行
pod deintegrate彻底卸载Pods,再重新执行pod install
第五步:验证构建
- 关闭Xcode,重新打开
.xcworkspace - 选择任意iPhone模拟器(比如iPhone 14),先执行「Clean Build Folder」(快捷键Cmd+Shift+K)
- 再点击构建按钮,应该就能正常编译了
内容的提问来源于stack exchange,提问作者Xiiryo
相关产品推荐
相关产品推荐

