iOS Admob网络中介:使用all_load和ObjC重复符号错误

Pau*_*aul 8 xcode linker-errors admob armv7 ios

我知道之前已经问过这个问题,但我已经尝试了所有我能找到的东西,而且没有一个有效.

我有一个功能齐全的iOS应用程序,我现在想要将AdMob网络中介集成到.我已经成功地让AdMob工作正常,但是Mediator需要设置链接器'-all_load'和'-ObjC'(在其他链接器标志中).如果我在没有它们的情况下构建,确实没有显示任何广告,并且在日志中它表示需要设置它们.

问题是我无法使用all_load或ObjC设置成功构建我的应用程序.我读到iOS应用程序不需要ObjC,但即使没有它,我仍然遇到all_load的问题.问题是我收到此错误:

ld:复制符号[这里有一些命令] [一些静态库]和[相同命令的路径]用于架构armv7 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

如果我删除有问题的静态库并重建,则错误只会移动到我拥有的下一个静态库,依此类推.由于我正在尝试安装广告中介,我的应用需要来自不同广告网络的多个静态库.

以下是我尝试失败的一些解决方案:

  • 编译armv6,而不是armv7(不管怎样都不是理想的修复,因为我想要两者)
  • 用force_load替换all_load [库的路径],并在实际的iOS设备上进行测试,因为显然这个方法无论如何都不能用于模拟器(这似乎没有做任何事情,我得到完全相同的问题,使用相同的路径无论如何在错误中找到)
  • 删除all_load(构建,但就像我说的,AdMob Mediation需要它)
  • 删除有问题的库(显然不起作用,因为错误抱怨我需要的每一个静态库)

在解决此问题时,我们非常感谢您的帮助

编辑:我的问题的解决方案

事实证明,我唯一没有尝试的只是在实际设备上使用-ObjC,这似乎对我有用!

EDIT2:NEVERMIND,仍然有麻烦

当被问及静态库导致我出现问题时,我会在下面引用我的评论:

"好吧,我通过排除all_load并且只包括ObjC让AdMob Mediation在没有任何其他网络的情况下工作,直到我添加了我的第一个网络,Adfonic,目前与MobileAppTracking冲突,我得到:ld:重复符号_OBJC_IVAR _ $ _可达性.reachabilityRef在[path]/Adfonic SDK/libAdfonic.a(Reachability.o)​​和[path] /Objects-normal/armv6/Reachability.o中,用于架构armv6 clang:错误:链接器命令失败,退出代码为1(使用-v看看调用)"

通过删除所有其他广告网络库,我有Admob Mediator的工作,但是在我的第一个第三方网络集成中,我和我实施的跟踪库MobileAppTracking之间又发生了另一个冲突.仍在寻找解决'重复符号'的解决方案.

编辑3

我可以确认,我尝试使用AdMob Mediator的每个广告网络(AdMob本身除外)都无法编译,其中大多数是由于重复的符号错误.我不明白这是怎么回事,因为我确信我不是唯一一个使用Admob的中介服务的人.

编辑4

我将在下面引用我的评论:

"我实际上设法让大多数广告网络和图书馆都在为我工作,我不得不在Compile Sources下删除相当多的引用,但是我得到它编译得非常少,仍然使用-ObjC和-all_load!"

zir*_*isp 0

我有同样的问题。在其他链接器中添加 -ObjC 后,我无法编译(它抱怨重复符号和可达性。)。删除它可以让我进行编译,但 AdMob 会使应用程序崩溃。

经过大量测试和使用大量参数后,我执行了以下操作,现在它可以工作了:我转到 Targets -> AppName -> Build Phases -> Compile Sources 并删除了 Reachability.m。它编译得很好,AdMod 也可以正常工作而不会崩溃。