React Native应用发布:Xcode构建成功但归档失败(错误码1)
ld: 513 duplicate symbols for architecture arm64错误 我帮不少React Native开发者解决过这个Archive阶段的重复符号错误,尤其是用.xcworkspace的场景,基本都是依赖或配置重复导致的,给你几个按优先级尝试的方案:
检查并重建CocoaPods依赖
这种错误最常见的原因就是Pods重复安装或依赖冲突。先打开你的Podfile,确认没有重复声明的库(比如某个第三方库既通过React Native自动引入,又手动在Podfile里添加了)。然后执行以下命令彻底清理并重建Pods:cd ios pod deintegrate rm -rf Podfile.lock pod install完成后重新打开
.xcworkspace再尝试Archive。排查Build Phases里的重复文件
打开Xcode的.xcworkspace,进入项目Target的Build Phases:- 查看Compile Sources,有没有重复添加的
.m/.cpp文件,尤其是第三方库的源码文件,删掉重复条目; - 查看Link Binary With Libraries,有没有重复引入的静态库(比如
.a格式的文件),移除重复项。
- 查看Compile Sources,有没有重复添加的
定位第三方库冲突
如果你最近新增了React Native第三方库,很可能是它和现有库依赖了相同的iOS原生库,导致重复符号。可以临时移除最近添加的库,重新构建后尝试Archive,以此定位问题库。找到后去该库的GitHub Issues看看,通常作者会给出解决方案,比如指定特定依赖版本,或者通过Podfile的pod exclude排除重复的子库。开启Dead Code Stripping
进入Xcode Target的Build Settings,找到Dead Code Stripping,把Debug和Release模式都设为YES。这个选项会让链接器自动移除未被使用的代码,有时候能规避重复符号的冲突。彻底清理缓存
缓存堆积也可能导致这类奇怪的链接错误,执行以下命令清理:# 清理Xcode派生数据缓存 rm -rf ~/Library/Developer/Xcode/DerivedData # 清理React Native缓存 npx react-native clean清理完成后重新构建项目,再尝试Archive操作。
检查架构配置
确保项目Target的Build Settings里:- Architectures只保留
arm64(如果是仅打包iOS设备的话); - Valid Architectures和Architectures保持一致,不要混合不同架构的配置。
- Architectures只保留
内容的提问来源于stack exchange,提问作者Basma Ebraheim

