MacBook M1 Pro下Expo40+React Native0.63.4旧项目iOS构建失败求助
问题根因&修复方案
M1芯片对低于0.64版本的React Native原生适配存在兼容性问题,新建项目可正常构建是因为新版React Native默认已适配arm64架构,而已eject的Expo 40 + React Native 0.63.4组合的原生配置未做M1兼容处理,按以下步骤操作即可修复:
- 强制通过Rosetta启动终端/IDE内置终端,老版本构建脚本仅兼容x86架构运行环境
- 清理项目缓存文件:
删除根目录下的node_modules文件夹、package-lock.json/yarn.lock文件
进入ios目录,删除Pods文件夹、Podfile.lock文件、build文件夹 - 修改ios目录下的Podfile配置,在post_install块追加架构排除规则:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' end end end
- 重新安装依赖:
根目录执行npm install或yarn install安装前端依赖
进入ios目录,执行arch -x86_64 pod install强制以x86模式安装Pod依赖 - 执行构建命令
npx react-native run-ios即可完成构建
如果以上操作完成后仍存在报错,打开Xcode的xcworkspace项目文件,检查项目主target和Pods下各依赖target的Build Settings配置,确认EXCLUDED_ARCHS下iphonesimulator对应的值已包含arm64。
内容的提问来源于stack exchange,提问作者Zuka Gaprindashvili
相关产品推荐
相关产品推荐

