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

React Native 0.69.1 新建TypeScript项目iOS构建失败

React Native 0.69.1 iOS构建FBReactNativeSpec编译错误修复方案

问题根因

React Native 0.69版本默认启用的新Codegen逻辑依赖C++17标准的std::optional::value()接口,该接口最低支持iOS 12.0版本。你当前使用的Xcode 12.4环境下,Pod工程存在三处配置不匹配问题:

  1. Podfile中调用了仅适配Xcode 12.5+版本的M1兼容补丁,在Xcode 12.4下会错误修改编译标记
  2. 指定的Flipper 0.151.0版本和Xcode 12.4存在C++标准库链接冲突
  3. React-Codegen等依赖Pod的部署目标未被正确设置为12.0以上,导致编译器判定接口不可用

修复步骤

按顺序执行以下操作即可解决问题:

  • 修改ios目录下的Podfile配置:
    1. 删除post_install块中的__apply_Xcode_12_5_M1_post_install_workaround(installer)行,该补丁不适配Xcode 12.4版本
    2. 将Flipper配置行替换为use_flipper!({ 'Flipper' => '0.125.0' }),该版本为适配Xcode 12.x + RN 0.69的稳定版本
    3. 在post_install块的react_native_post_install(installer)行下方,添加如下强制编译配置,修正所有依赖Pod的C++编译参数:
installer.pods_project.targets.each do |target|
  target.build_configurations.each do |config|
    config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17'
    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
    config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = 'NO'
  end
end
  • 清理全量旧缓存,重新安装依赖:
    1. 终端进入项目ios目录,执行pod deintegrate解除原有Pod依赖绑定
    2. 回到项目根目录,删除node_modules文件夹,依次执行yarn cache clean、yarn install重装JS依赖
    3. 再次进入ios目录,执行pod install --repo-update重装iOS原生依赖
    4. 打开Xcode,清空DerivedData中对应项目的缓存,删除ios目录下的build文件夹
  • 回到项目根目录执行yarn ios即可正常完成构建

注意事项

  • 若重新构建时仍提示FBReactNativeSpec相关头文件错误,可手动删除ios/build/generated目录,Codegen会在下次构建时自动重新生成适配当前配置的头文件
  • macOS Catalina 10.15.7最高支持Xcode 12.4版本,不要尝试升级Xcode到13及以上版本,会出现系统兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:45:05