6

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

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
4

3 回答 3

34

如果您使用的是 Admob v6.2 库,请确保您没有使用-all_load链接器标志,-ObjC而是使用链接器标志。

于 2012-10-05T00:20:17.510 回答
3

如果您找不到任何“-all_load”参数,但也会显示此错误。

您必须转到“project.xcodeproj”并在“project.pbxproj”中将“-all_load”替换为“-ObjC”

于 2012-10-26T09:14:28.490 回答
0

我在 Unity 游戏中遇到了这个问题,并且我添加了 IronSource 中介适配器,如果是你的情况,这是我找到的解决方案:你应该使用 pod。我想你知道它,但如果你不知道,它就像 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 处理冲突的库并删除不允许构建成功的重复符号。

于 2019-12-22T11:59:28.377 回答