AdMob中的重复符号

时间:2012-10-04 12:43:12

标签: objective-c ios6 admob

归档时,会出现这样的错误:

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

3 个答案:

答案 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可以处理冲突的库,并删除不允许构建成功的重复符号。