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

Unity构建XCode项目报arm64架构重复符号错误ID34411如何解决

报错核心原因

duplicate symbols for architecture arm64 本质是编译链接阶段,同一个函数、全局变量在多个编译产物中被重复定义。你提到的amd64文件夹是Xcode编译时自动生成的中间产物目录,删除后重建属于正常现象,问题根源与该文件夹无关,无需在该目录上做额外操作。

解决步骤

1. 优先排查Unity侧配置问题

  • 检查最近新增的第三方iOS插件/SDK,尤其是包含.a、.framework格式原生库的插件,大概率是两个插件引入了同名静态库,或是同一个插件被重复导入了两次
  • 打开Unity的「Build Settings → iOS → Player Settings → Other Settings」,找到Search Paths配置项,检查是否存在重复添加的库搜索路径
  • 如果你使用CocoaPods管理iOS依赖,确认Podfile中没有重复声明同一个库,也不要出现「手动导入某库+Podfile声明同一库」的重复引入情况
  • 若你多次使用Append模式导出Xcode项目,换成Replace模式重新导出一次,多次Append会把旧版本的冗余库残留到Xcode项目中引发冲突

2. 调整Xcode编译配置(可临时解决绝大多数场景)

  • 打开导出的Xcode项目,选中根Target,进入Build Settings页
  • 搜索No Common Blocks,将配置值改为NO,该配置允许存在重复的全局变量定义,可直接解决大部分重复符号报错
  • 继续搜索Other Linker Flags,检查是否存在重复的-ObjC标记,若存在-all_load标记可先替换为-force_load仅定向加载需要的库,避免全局加载所有库引发符号冲突

3. 定位具体冲突源(根治问题)

不用完整查看12万行堆栈日志,直接在报错日志中搜索duplicate symbol关键词,后面跟随的就是重复的符号名称:

  • 复制该符号名称回到Unity项目全局搜索,即可定位到是哪两个文件/插件定义了同一个符号,删除其中重复的版本即可
  • 若重复符号来自两个不同的第三方商业插件,可联系插件作者更新兼容;若是开源插件,可直接修改其中一个的符号名避免冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 04:21:03