将Google移动广告iOS SDK从5.0.5升级到6.4.2会导致链接器错误

时间:2013-06-27 01:34:21

标签: ios mobile sdk ads

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

我的步骤如下:

  1. 从项目中删除以前SDK的文件引用
  2. 删除之前的libGoogleAdMobAds.a链接库
  3. 关注setup instructions(包括所需的框架,包括特定文件,以及添加其他链接标记)
  4. 具体错误是:

    Undefined symbols for architecture i386:
    
      "_CGSizeFromGADAdSize", referenced from
    

      "_kGADAdSizeBanner", referenced from
    

    我还缺少什么?

1 个答案:

答案 0 :(得分:0)

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

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

请参阅本节:“支持armv7s”

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

[更新]

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

nm -U libGoogleAdMobAds.a  | grep kGADAdSizeBanner

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

enter image description here

[更新2]

该网站上的某人也抱怨新API存在链接器问题。可能必须对您的代码进行细微更改。

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

Something has changed in the latest AdMob SDK. I get the same linker error. I can use an older version of the SDK and this all works fine. Anyone know what could have changed with Ad sizes?

EDIT: Found the problem. There were some name changes to constants :)

https://developers.google.com/mobile-ads-sdk/docs/ios/intermediate

Change the GAD_ ad sizes with:

kGADAdSizeBanner.size.width and kGADAdSizeBanner.size.height