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

React Native 0.65.1 iOS模拟器编译报x86_64架构9个重复符号错误

问题产生原因
  • 版本兼容性冲突:React Native 0.65.1 与 CocoaPods 1.11.2 存在原生适配缺陷,CocoaPods 1.11.x 调整了构建脚本的执行逻辑,会导致 FBReactNativeSpec 等 RN 核心原生模块重复生成代码符号,最终触发x86_64架构下的符号重复报错
  • 编译缓存残留:Xcode DerivedData 目录下存在陈旧的构建产物,和新编译生成的符号定义重复
  • 依赖重复引入:项目存在同一依赖被多次引入的情况,比如同时在 Podfile 中手动声明了某 RN 原生依赖,而该依赖已经通过 pod install 自动从 node_modules 中同步引入
  • 架构配置异常:项目模拟器架构配置冲突,同时开启了多架构编译但部分依赖未做兼容处理
解决方法

步骤1:全量清理本地缓存

执行以下命令清理所有编译缓存和依赖产物:

# 清理Xcode DerivedData缓存
rm -rf ~/Library/Developer/Xcode/DerivedData/*
# 清理ios目录下的构建产物
cd ios && rm -rf build Pods Podfile.lock
# 清理node_modules并重新安装
cd .. && rm -rf node_modules yarn.lock package-lock.json
# 重新安装依赖
npm install # 或者yarn install
# 重新安装Pod
cd ios && pod install

清理完成后重新打开Xcode运行项目,排查是否修复。

步骤2:修复RN与CocoaPods版本兼容问题

如果清理缓存后问题依旧,是0.65.1和CocoaPods1.11.2的兼容问题,按以下方式处理:

  • 方案1:降级CocoaPods到1.10.2版本,该版本和RN0.65.x适配性更好
    执行命令:sudo gem install cocoapods -v 1.10.2,之后重新执行pod install
  • 方案2:如果不想降级CocoaPods,在Podfile中添加以下配置屏蔽重复符号生成:
    找到post_install块,添加以下代码:
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        if target.name == "FBReactNativeSpec"
          target.remove_from_project
        end
        if target.name == "react-native-config"
          target.build_configurations.each do |config|
            config.build_settings['APPLY_RULES_IN_COPY_FILES'] = 'NO'
          end
        end
      end
    end
    
    修改完成后重新执行pod install即可。

步骤3:排查重复依赖

检查package.json和Podfile,确认没有同一依赖被多次引入的情况,比如某第三方RN库既在package.json中安装,又手动在Podfile中添加了pod声明,删除重复的声明后重新安装依赖即可。

步骤4:调整模拟器架构配置

如果使用的是M系列芯片的Mac,在Xcode中打开项目,找到Build Settings -> Excluded Architectures,在Debug模式的模拟器配置中添加arm64,强制模拟器编译为x86_64架构,避免多架构编译导致的符号冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:45:03