归档时,会出现这样的错误:
Projects/Dossier/MultiDocument/Helpers/GAD/libGoogleAdMobAds.a(GADGestureCFiles.o)
duplicate symbol _tohex in:
/Users/shmidt/Documents/App Development/Xcode Projects/Dossier/MultiDocument/Helpers/GAD/libGoogleAdMobAds.a(rc4.o)
/Users/shmidt/Documents/App Development/Xcode Projects/Dossier/MultiDocument/Helpers/GAD/libGoogleAdMobAds.a(GADGestureCFiles.o)
ld: 64 duplicate symbols for architecture armv7s
答案 0 :(得分:34)
如果您正在使用Admob v6.2库,请确保您没有使用-all_load
链接器标志,而是使用-ObjC
链接器标志。
答案 1 :(得分:3)
如果找不到任何“-all_load”参数但也显示此错误。
你必须转到“project.xcodeproj”并将“-all_load”替换为“project.pbxproj”中的“-ObjC”
答案 2 :(得分:0)
我在Unity游戏中遇到了这个问题,并且添加了IronSource中介适配器,如果您的情况是,这是我找到的解决方案: 您应该使用豆荚。我想您已经知道了,但是如果您不知道,它就像Apple产品中的Google Play服务一样,旨在照顾要包含在项目中的外部软件包和库。 当您手动将框架添加到项目中时,它与项目中可能已经存在的同一程序包的其他代码冲突。在我的案例中,解决方案是从Google的Admob框架中删除“ GoogleUtilities”和“ nanopb”,以及从Facebook广告框架中删除“ FBCoreKit”(存在冲突),并将以下代码添加到Unity中的依赖项文件中:
<iosPods>
`enter code here`<iosPod name="FBAudienceNetwork" version="5.6.0" />
`enter code here`<iosPod name="Google-Mobile-Ads-SDK" version="7.50.0" />
</iosPods>
此代码使Pod可以处理冲突的库,并删除不允许构建成功的重复符号。