41

我已经下载了最新版本的 googles admob sdk。但是现在我在使用最新的 sdk 编译 xcode 4.5 时不断收到以下错误。

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

知道什么可能是错的吗?

4

3 回答 3

181

您可能没有添加 AdSupport.framework。还要记住删除-all_load链接器标志。

于 2012-09-27T19:48:12.493 回答
9

xcode 4.5 和 admob 6.x 中需要 AdSupport.framework

于 2012-10-22T07:26:17.040 回答
1

另一方面,您可以在不添加额外框架的情况下修复它,如果您的项目不需要此标志,请从“Linking > Other Linker Flags”中删除“-Obj”标志。

我的情况不同,我支持 GoogleConvertionTracking.lib 但在几个发布客户决定从客户端删除 GoogleConvertionTracking.lib 之后。从客户端删除所有必需的代码后,我开始收到 “_OBJC_CLASS_$_ASIdentifierManager”的错误,引用自:”

通过 GoogleConvertionTracking 的支持文档后,我发现我在“链接”>“其他链接器标志”下添加了“-Obj”编译器标志。

*通过从 rel/deb 的“Linking > Other Linker Flags”中删除这个“-Obj”标志,这个错误就消失了。

我不必添加 AddSupport.framework 来摆脱这个错误。此更改可能对那些不想添加额外框架以避免编译错误的人有所帮助。

于 2014-05-08T19:41:52.920 回答