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

React-Native安装vision-camera-code-scanner后Xcode编译出现arm64重复符号错误

问题

我有一个运行正常的React-Native项目,但在安装vision-camera-code-scanner后,项目无法在Xcode中编译,出现如下错误:

duplicate symbol '_OBJC_CLASS_$_GDTCCTCompressionHelper' in:
    /Users/XXX/Library/Developer/Xcode/DerivedData/XXX-xxx/Build/Products/Debug-iphoneos/GoogleDataTransport.o
    /Users/XXX/Library/Developer/Xcode/DerivedData/XXX-xxx/Build/Products/Debug-iphoneos/GoogleDataTransport/libGoogleDataTransport.a(GDTCCTCompressionHelper.o)

duplicate symbol '_OBJC_METACLASS_$_GDTCCTCompressionHelper' in:
    /Users/XXX/Library/Developer/Xcode/DerivedData/XXX-xxx/Build/Products/Debug-iphoneos/GoogleDataTransport.o
    /Users/XXX/Library/Developer/Xcode/DerivedData/XXX-xxx/Build/Products/Debug-iphoneos/GoogleDataTransport/libGoogleDataTransport.a(GDTCCTCompressionHelper.o)
[...]
ld: 105 duplicate symbols for architecture arm64

查看日志可知,重复符号存在于以下文件中:

GoogleDataTransport.o
libGoogleDataTransport.a

GoogleUtilities_Environment.o
libGoogleUtilities.a

GoogleUtilities_Logger.o
libGoogleUtilities.a

GoogleUtilities_UserDefaults.o
libGoogleUtilities.a

FBLPromises.o
libPromisesObjC.a

我尝试查找重复文件但未成功,作为React-Native新手,请问该如何修复这个重复符号错误?

解决方案

  • 清理缓存与派生数据

    1. 清理React Native缓存:
      npx react-native clean
      
    2. 打开Xcode,执行Product -> Clean Build Folder(快捷键Cmd+Shift+K);手动删除Xcode派生数据:找到路径~/Library/Developer/Xcode/DerivedData,删除对应项目的文件夹。
  • 统一依赖版本解决冲突
    该错误源于vision-camera-code-scanner与现有项目的Google相关库版本冲突,导致重复编译符号:

    1. 查看依赖树定位冲突库:
      yarn why GoogleDataTransport
      # npm用户执行:npm ls GoogleDataTransport
      
    2. 在package.json中添加版本强制统一配置:
      • Yarn用户添加resolutions字段:
        "resolutions": {
          "GoogleDataTransport": "9.2.4",
          "GoogleUtilities": "7.11.5",
          "PromisesObjC": "2.3.1"
        }
        
      • npm用户添加overrides字段:
        "overrides": {
          "GoogleDataTransport": "9.2.4",
          "GoogleUtilities": "7.11.5",
          "PromisesObjC": "2.3.1"
        }
        
    3. 重新安装依赖:
      yarn install # npm用户执行:npm install
      
  • 调整Xcode编译配置

    1. 打开Xcode项目,选中目标TARGET,进入Build Settings页面。
    2. 搜索Other Linker Flags,添加-ObjC和-all_load(已存在则跳过)。
    3. 搜索Dead Code Stripping,设置为YES,让Xcode自动剔除重复符号。
  • 重新链接原生依赖
    执行命令重新安装iOS依赖:

    npx pod-install ios
    

    重启Xcode后重新编译项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:55:30