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

Xcode13编译React Native项目iOS13环境触发SIGABRT崩溃

崩溃根因

这是典型的低版本系统动态链接符号缺失错误:

  • 报错中提到的_CTRadioAccessTechnologyNR是CoreTelephony框架内用于标识5G NR接入类型的常量,该符号仅在iOS 14及以上系统版本中存在,iOS 13系统自带的CoreTelephony框架未导出这个符号。
  • Xcode 13构建应用时,CoreTelephony默认被配置为强(Required)链接模式:应用启动阶段dyld动态链接器会立刻解析所有强链接依赖的符号,一旦在当前系统框架中找不到对应符号,就会直接触发SIGABRT崩溃,不存在延迟加载容错。这也是应用在iOS 14、iOS 15可正常运行,仅iOS 13启动即崩的原因。
  • React Native项目触发该问题的常见来源是核心网络状态模块、或低版本@react-native-community/netinfo依赖引用了5G相关符号,但未正确配置框架弱链接兼容。
修复步骤

按优先级依次尝试以下方案:

  • 手动修改CoreTelephony链接模式
    1. 打开iOS目录下的.xcworkspace工程文件,选中应用主Target
    2. 切换到Build Phases标签,展开Link Binary With Libraries列表
    3. 找到列表中的CoreTelephony.framework,将其右侧Status属性从默认的Required修改为Optional
    4. 按下Cmd+Shift+K清理Xcode构建缓存,重新打包即可
  • 升级存在兼容问题的依赖
    如果项目集成了@react-native-community/netinfo,请将其升级到6.0.2及以上版本,老版本未对CoreTelephony的5G符号做低版本兼容处理,升级后在iOS目录执行pod install再重新构建即可。
  • 全局配置弱链接避免配置被依赖覆盖
    如果上述方案操作后,执行pod install配置被重置,可以在iOS目录的Podfile末尾添加如下post_install脚本,自动给所有依赖配置CoreTelephony弱链接:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 注意保留Podfile中已有的其他post_install逻辑,比如Flipper相关配置
    target.build_configurations.each do |config|
      config.build_settings['OTHER_LDFLAGS'] ||= ['$(inherited)']
      config.build_settings['OTHER_LDFLAGS'] << '-weak_framework' << 'CoreTelephony'
    end
  end
end

脚本添加完成后重新执行pod install,清理缓存构建即可。

附原始崩溃关键日志:

dyld: Symbol not found: _CTRadioAccessTechnologyNR
Referenced from: xxxx.app/xxxx
Expected in: /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:45:35