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

React Native iOS模拟器正常但真机构建失败如何解决

问题原因

两个报错同源:开启use_frameworks!的情况下,CocoaPods不会自动将主项目的Bitcode配置同步到Pods下的所有依赖项。你手动在主项目禁用Bitcode后,RCT-Folly等RN核心依赖的构建配置中ENABLE_BITCODE仍为YES,与链接参数-U产生冲突,最终触发真机构建链接失败。iOS模拟器构建默认不触发Bitcode相关校验,因此可以正常运行。

修复方案

按以下顺序操作即可解决:

  • 替换Podfile中原有post_install代码块,新增强制关闭所有Pods依赖Bitcode的逻辑:
post_install do |installer|
  react_native_post_install(installer)
  __apply_Xcode_12_5_M1_post_install_workaround(installer)

  # 强制给所有Pod依赖关闭Bitcode
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end
  • 清理全量构建缓存,避免旧配置残留,依次执行命令:
    1. 进入iOS工程目录:cd ios
    2. 重新安装Pods依赖:pod install --repo-update
    3. 清空Xcode构建缓存:rm -rf ~/Library/Developer/Xcode/DerivedData/*
    4. 返回项目根目录清理RN打包缓存:cd .. && npx react-native start --reset-cache
  • 重新执行react-native run-ios --device "Max’s Iphone 12 Mini"命令,或在Xcode中选中真机设备直接构建即可。

补充说明:苹果从Xcode 14开始已正式废弃Bitcode机制,React Native 0.70及以上版本默认也关闭了Bitcode。开启use_frameworks!后出现该问题,本质是CocoaPods的配置同步逻辑缺陷,不需要反复修改主项目的Build Settings,通过post_install钩子统一修改所有Pods的构建配置是最稳定的解决方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:09:18