React Native Xcode构建报错:Undefined symbol相关问题求助
解决M2 MacBook Air + Xcode14.2 iOS模拟器构建失败(Undefined symbol)的方案
核心原因
该报错属于Swift与Objective-C桥接时的架构不兼容问题,M2芯片为arm64架构,Xcode14.2的模拟器在架构处理逻辑上存在特定冲突,导致符号链接失败。
可尝试的解决步骤
1. 统一项目架构配置
- 打开Xcode进入项目
Build Settings:- 搜索
Architectures,将其设置为Standard Architectures (arm64, x86_64) - 若存在
Valid Architectures选项,手动添加arm64和x86_64 - 搜索
Excluded Architectures,在Debug/Release模式下,为Any iOS Simulator SDK单独设置排除x86_64(真机配置保持默认)
- 搜索
2. 彻底清理构建缓存
- 执行Xcode菜单
Product > Clean Build Folder(快捷键Cmd+Shift+K) - 删除项目DerivedData:前往
~/Library/Developer/Xcode/DerivedData,删除当前项目对应的文件夹 - 重启Xcode后重新构建
3. 修复CocoaPods依赖的架构(若使用Pods)
- 打开项目根目录的
Podfile,添加以下配置:post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "x86_64" config.build_settings["ONLY_ACTIVE_ARCH"] = "NO" end end - 执行
pod install重新安装依赖
4. 直接用arm64原生架构运行模拟器
M2芯片原生支持arm64模拟器,无需x86_64转译:
- 在VSCode中直接执行
yarn ios,去掉arch -x86_64前缀 - 确保Xcode选择的是arm64版本的模拟器设备(如“iPhone 14”系列)
5. 升级Xcode版本(备选)
Xcode14.2对M2芯片模拟器的支持存在已知缺陷,升级到Xcode14.3及以上版本,能更好适配arm64架构的模拟器环境。
内容的提问来源于stack exchange,提问作者김지엽
相关产品推荐
相关产品推荐

