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

M1芯片Mac运行React Native项目报Swift未定义符号错误如何解决

M1芯片Mac运行React Native项目Swift符号缺失错误修复方案

你遇到的所有Undefined symbol报错本质是React Native 0.64.2版本搭配Xcode 13在M1芯片设备的iOS模拟器构建时,未正确链接Swift运行时库导致的。你之前添加Swift文件和桥接文件的操作未生效,是因为缺少对应的链接器配置和架构兼容配置,按以下步骤操作即可解决:

修复步骤

步骤1:添加链接器标记

  • 打开iOS项目下的.xcworkspace文件,选中项目根节点,切换到你的应用对应的TARGETS,进入「Build Settings」标签页
  • 搜索Other Linker Flags,在Debug和Release配置下分别添加两个标记:
    • -ld64:强制Xcode使用旧版链接器,避免Xcode 13默认的新版链接器对旧RN版本的兼容问题
    • -lswiftCore:强制链接Swift核心库,解决Swift符号缺失问题

步骤2:配置模拟器架构兼容

React Native 0.64.2本身不支持arm64架构的iOS模拟器,需要临时排除该架构:

  • 仍在Build Settings页面,搜索Excluded Architectures
  • 针对「Any iOS Simulator SDK」选项,添加值arm64
  • 为了避免每次执行pod install后Pod项目的配置被覆盖,在你的Podfile末尾添加如下自动配置脚本:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
    end
  end
end
  • 保存Podfile后,在项目ios目录下执行pod install使配置生效

步骤3:清理缓存重新构建

  • 关闭Xcode,执行以下命令清理所有构建缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ios/Pods ios/Podfile.lock
cd ios && pod install
  • 重新打开项目的.xcworkspace文件,按Command+Shift+K清理Xcode内部缓存后,重新运行项目即可

兜底方案

如果上述操作后仍有问题,可以右键访达中的Xcode应用,选择「显示简介」,勾选「使用Rosetta打开」后重启Xcode再运行项目即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:57:00