You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac Xcode构建React Native iPad模拟器项目报错问询

排查解决步骤

1. 修复Swift编译参数冲突

从你贴出的编译日志可以看到,ExpoModulesCore(属于Pods依赖)的swiftc编译参数同时携带了-incremental和-whole-module-optimization两个互斥参数,这是编译失败的直接原因。手动修改主项目的编译配置不会影响Pods生成的配置,需要通过Podfile钩子统一修正:

  • 打开iOS目录下的Podfile,在文件末尾添加以下post_install逻辑:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # 关闭全模块优化,消除和增量编译的冲突
      config.build_settings['SWIFT_WHOLE_MODULE_OPTIMIZATION'] = 'NO'
      config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone'
      # 清空模拟器架构排除项,避免arm64架构编译异常
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = ''
    end
  end
end
  • 进入iOS目录执行命令重新生成Pods配置:
pod deintegrate && pod install
  • 打开Xcode,按Command+Shift+K清理构建缓存,再删除~/Library/Developer/Xcode/DerivedData目录下对应项目的缓存文件夹,重新执行构建。

2. 解决react-native-webrtc文件找不到报错

M1芯片设备上这类包含原生二进制的依赖报文件不存在,基本是架构适配或pod安装环节的问题,按以下顺序排查:

  • 确认打开Xcode项目时选择的是.xcworkspace后缀的文件,而非.xcodeproj文件
  • 执行以下命令安装Rosetta转译依赖,再重新安装pod:
sudo arch -x86_64 gem install ffi
cd ios
arch -x86_64 pod install
  • 如果仍报错,在Xcode中选中Pods项目,找到react-native-webrtctarget,在Build Settings中搜索Header Search Paths,添加路径$(SRCROOT)/../node_modules/react-native-webrtc/ios,并设置为recursive模式。

3. 环境一致性校验

  • 执行以下命令重装前端依赖,排除依赖损坏问题:
yarn cache clean
rm -rf node_modules
yarn install
  • 执行pod repo update更新本地CocoaPods仓库,避免本地仓库版本和同事不一致导致的依赖差异
  • 以上操作都无效时,右键Xcode图标选择「显示简介」,勾选「使用Rosetta打开」,重启Xcode后再尝试构建。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:45:44