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

升级React Native 0.67后iOS模拟器出现Swift符号未定义错误

React Native 0.67 iOS模拟器链接器错误解决

问题现象

升级至React Native 0.67后,iOS模拟器运行应用时出现链接器错误,核心为x86_64架构下Swift相关符号未定义:

Undefined symbol: swift::swift51override_conformsToSwiftProtocol(swift::TargetMetadata<swift::InProcess> const*, swift::TargetProtocolDescriptor<swift::InProcess> const*, __swift::__runtime::llvm::StringRef, swift::TargetProtocolConformanceDescriptor<swift::InProcess> const* (*)(swift::TargetMetadata<swift::InProcess> const*, swift::TargetProtocolDescriptor<swift::InProcess> const*, __swift::__runtime::llvm::StringRef))
Undefined symbol: _swiftoverride_class_getSuperclass(swift::TargetMetadata<swift::InProcess> const*)

最终链接器命令执行失败,退出码为1。

解决方案

1. 确保Swift标准库正确嵌入与链接

  • 打开Xcode项目的Build Settings,找到Always Embed Swift Standard Libraries,设置为Yes。
  • 在Other Linker Flags中添加-lswiftCore和-lswiftFoundation,或直接添加-ObjC确保Objective-C与Swift库正确链接。
  • 若项目原本无Swift文件,新建空Swift文件(如Dummy.swift),Xcode提示创建桥接文件时确认,之后可移除空Swift文件(保留桥接文件),触发Xcode自动配置Swift编译环境。

2. 清理缓存与重新安装依赖

  • 清理Xcode派生数据:
    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  • 在Xcode中按Cmd+Shift+K清理项目,再按Cmd+Option+Shift+K清理构建文件夹。
  • 进入iOS目录重新集成Pod:
    cd ios
    pod deintegrate
    pod install
    

3. 调整架构配置

  • 在Xcode的Build Settings中,将Architectures设置为Standard Architectures (arm64, x86_64)。
  • 检查Excluded Architectures,确保Debug模式下未排除x86_64(React Native 0.67需支持模拟器x86_64架构)。

4. 检查第三方依赖兼容性

  • 确认所有第三方依赖(尤其Swift编写的库)已更新至支持React Native 0.67和Xcode 13+的版本(RN 0.67要求Xcode 13及以上,对应Swift 5.5)。
  • 若有依赖未更新,尝试替换为兼容替代库,或联系维护者获取适配版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:16:08