Xcode集成AdMob时x86_64架构出现4个重复符号错误如何解决?
Xcode集成AdMob出现x86_64架构重复符号报错修复方案
报错信息:Showing Recent Errors Only 4 duplicate symbols for architecture x86_64
- 第一步:排查依赖重复引入
执行pod dependencies命令查看项目依赖树,确认是否有其他第三方SDK(广告类、统计类居多)内部已经内置了Google-Mobile-Ads-SDK,导致两次引入产生符号冲突。如果存在重复依赖,可选择移除其中一个,或对内置AdMob的SDK做去重配置。 - 第二步:调整Podfile链接配置
确认Podfile中正确配置了链接规则,Swift项目建议使用:
use_frameworks! :linkage => static
OC项目可根据自身依赖情况选择use_frameworks!或纯静态链接,避免动态/静态链接混合导致的符号重复问题。
- 第三步:全量清理缓存后重装依赖
退出Xcode后,在项目根目录依次执行以下命令:
rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf Pods rm Podfile.lock pod install --repo-update
- 第四步:校验Xcode构建设置
打开项目Build Settings面板:
- 搜索
Other Linker Flags,确认没有重复添加-ObjC标识,也没有手动重复引入AdMob相关的.a静态库文件 - 搜索
Excluded Architectures,确认没有对模拟器架构错误排除x86_64,也没有重复添加架构配置
- 可选兼容方案:如果是Xcode版本较低和最新版AdMob SDK不兼容导致的问题,可以在Podfile中指定适配的旧版本SDK,例如:
pod 'Google-Mobile-Ads-SDK', '~> 10.0'
内容的提问来源于stack exchange,提问作者Huzaifa Aliyash
相关产品推荐
相关产品推荐

