5

我在 Xcode 中有一个 iOS 项目。它包含大量链接库,包括 GoogleInteractiveMediaAds.framework 以及一个内部播放器库,我相信它也与该框架链接。两者也是嵌入式二进制文件。

该项目编译得很好,但在运行时我收到以下错误:

GAD_GTMStringEncoding 类在 /GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds 和 APP_PATH 中实现。将使用两者之一。哪一个是未定义的。

尽管有此警告,但在模拟器上,该应用程序每次都按预期工作 - 我收到了我所期待的前贴片广告、插播广告和后贴片广告。每次。在设备上,情况就不同了,广告有时有效,有时无效。我知道上述问题会导致不同目标上的不同行为,我怀疑这种冲突是设备功能受损的原因。

我在 SO 上找到的解决方案建议要么更改命名空间,要么从我的应用程序或我链接的库中删除链接。问题是,如果我删除了项目中的嵌入式二进制文件,则它无法编译:

dyld:库未加载:
@rpath/GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds
引用自:APP_PATH
原因:找不到图像
(lldb)

我见过一些人建议什么会从应用程序中删除链接并使用播放器的内部实例(然后我必须希望播放器是根据我需要的版本编译的),但是你到底是怎么做的那?在这种情况下,这甚至会起作用吗?

另外,有没有办法确定 GoogleInteractiveMediaAds.framework 的另一个实例来自哪里?我只是假设它在内部播放器库中,但我不确定,因为我没有来源。错误消息只是为我提供了已编译应用程序的路径,这几乎没有帮助,因为其中有 30 个链接库。

提前致谢。

4

1 回答 1

1

在最初坚持认为问题出在我们的代码中之后,负责该框架的 Google 团队最终被迫承认(在我们提供了示例应用程序之后)这是他们的代码问题,而不是我们的问题。它已在更新中解决。

于 2017-08-01T19:25:08.223 回答