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

升级Xcode 13.1后React Native应用归档失败该如何解决?

修复方案

1 统一所有依赖的iOS部署目标

你之前仅修改了主项目的部署目标,CocoaPods引入的第三方依赖仍会保留默认的低版本配置,需在Podfile末尾添加如下脚本,全局统一所有Pod的最低部署目标为9.0:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 9.0
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      end
    end
  end
end

2 修复atomic_notify_one不可用报错

该问题由旧版Flipper-Folly依赖与Xcode13的API不兼容导致,优先选择最低成本方案:

  • 生产归档场景直接禁用Flipper:Flipper为调试工具,不参与生产包功能,直接注释Podfile中调用add_flipper_pods!的代码行即可,该报错会直接消失。
  • 需保留Flipper调试能力的场景:修改完add_flipper_pods!的版本配置后,执行以下清理操作后重新安装依赖:
    cd ios
    pod deintegrate
    rm -rf Podfile.lock Pods
    pod cache clean --all
    rm -rf ~/Library/Caches/CocoaPods
    pod install
    

3 修复RCTCxxBridge.mm指针类型不兼容报错

该问题是Xcode13的clang编译器对Objective-C++类型检查规则收紧导致,旧版React Native(0.66以下版本)均存在该兼容问题,无需手动修改源码,可通过配置编译参数直接规避:
打开Xcode主项目的构建设置,搜索Other C++ Flags,添加编译参数-Wno-error=incompatible-pointer-types,即可忽略该类类型不兼容的报错,不会影响应用运行稳定性。

兜底方案

如果上述操作后仍有兼容问题,建议将React Native版本升级到0.66及以上,该版本开始官方原生适配Xcode13与iOS15,上述所有编译问题均已被官方修复。

内容的提问来源于stack exchange,提问作者Stéphane ROQUES

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:15:03