【问题标题】:Upgrading Google Mobile Ads iOS SDK from 5.0.5 to 6.4.2 results in linker errors将 Google Mobile Ads iOS SDK 从 5.0.5 升级到 6.4.2 会导致链接器错误
【发布时间】:2013-06-27 01:34:21
【问题描述】:

我有一个使用 Google 移动广告 SDK(我相信是 v 5.0.5)的现有 iOS 应用。我需要将其升级到最新版本以获得 DoubleClick 支持。但是,我遇到了链接器错误。

我的步骤如下:

  1. 从项目中删除以前 SDK 的文件引用
  2. 删除之前的libGoogleAdMobAds.a链接库
  3. 按照setup instructions(信守承诺,包括所需的框架,仅包括特定文件,以及添加Other Linker Flag)

具体错误是:

架构 i386 的未定义符号: “_CGSizeFromGADAdSize”,引用自

或

“_kGADAdSizeBanner”,引用自

我还缺少什么?

【问题讨论】:

  • 我还在项目设置的Library Search Path区域找到了5.0.5路径的引用。我删除了它,清理并重建了它,但我仍然看到链接器问题。

标签: ios mobile sdk ads


【解决方案1】:

也许您也需要 -all_load 链接器标志选项?根据这篇文章,它对于较新的 ARM7 目标已经过时,但也许您有一个旧目标?

http://vntin.com/feeds.feedburner.com/blogspot/LTiVe

请参阅本节下方:“对 armv7s 的支持”

“如果您的目标是 armv7s 架构,则不再需要将 -all_load 链接器标志添加到您的项目中。”

[更新]

您可以尝试使用 nm 命令验证 lib*.a 文件中的内容。

nm -U libGoogleAdMobAds.a  | grep kGADAdSizeBanner

此外,单击日志导航器可能会提供一些附加信息。选择最后一个图标,然后选择左侧导航中的最后一个构建。

[更新 2]

此站点上的某个人还抱怨新 API 的链接器问题。可能需要对您的代码进行一些小改动。

http://www.monkeycoder.co.nz/Community/posts.php?topic=1246

最新的 AdMob SDK 发生了一些变化。我得到相同的链接器错误。我可以使用旧版本的 SDK,这一切都很好。有人知道广告尺寸会发生什么变化吗? 编辑:发现问题。常量名称发生了一些变化:) https://developers.google.com/mobile-ads-sdk/docs/ios/intermediate 更改 GAD_ 广告尺寸: kGADAdSizeBanner.size.width 和 kGADAdSizeBanner.size.height

【讨论】:

  • 谢谢。我继续添加 -all_load 标志,但无济于事。我还注意到它说他们放弃了对我从项目中删除的 armv6 的支持,但也无济于事。 (帖子的非供稿链接:googleadsdeveloper.blogspot.com/2012/09/…)
  • 您是否尝试在手机上构建?您收到 i386 错误,这意味着您正在模拟器中运行。此外,请确保标志位于 DEBUG 和 RELEASE 设置上。我自己也犯了这个错误。
  • 我已经仔细检查了这些标志,它们既可以用于调试也可以用于发布。为设备构建会产生相同的错误(当然,除了 armv7,而不是 i386)。
  • nm 命令在库文件中显示多个 kGADAdSizeBanner 实例。日志导航器似乎没有显示任何额外内容。我尝试将 -v 选项添加到其他链接器标志,但这似乎也没有返回任何额外内容。
  • 您点击了“验证”按钮,“分析”了代码并且没有忽略编辑器中的任何警告?在这种情况下,我总是做一些小事。另外,你看到链接器输出了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 2022-01-08
  • 2021-09-13
  • 1970-01-01
  • 2015-05-15
  • 1970-01-01
相关资源
最近更新 更多