1

我目前正在将 Flurry AppCircle Ads 与 AdMob 中介集成到我的 iPhone 应用程序中;我正在为 iOS 6 开发。

我一直从这里遵循 Flurry 的集成说明,但最后,该项目甚至没有编译。每个需要的框架都与 AdMob 中介的适配器相关联。

以下是引发的错误:

    Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_FlurryDataSenderBase", referenced from:
      _OBJC_CLASS_$_AdLogManager in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_CLASS_$_FlurryDataSenderBlockInfo", referenced from:
      objc-class-ref in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_CLASS_$_FlurryImpl", referenced from:
       objc-class-ref in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_CLASS_$_FlurrySharedData", referenced from:
      objc-class-ref in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    "_OBJC_METACLASS_$_FlurryDataSenderBase", referenced from:
      _OBJC_METACLASS_$_AdLogManager in libFlurryAds.a(libFlurryAds.a-i386-master.o)
    ld: symbol(s) not found for architecture i386

现在我自己认为,如果我从其他链接器标志中删除标志,则可以避免这些错误并且可以构建应用程序-ObjC,但这个标志至关重要,否则 AdMob 中介在请求广告时会在运行时引发错误:

    -[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xc9cc000

任何帮助将不胜感激。

4

1 回答 1

2

您现在可能已经想通了,但我只有在主 Flurry SDK 和 Flurry Ads SDK 之间的版本不匹配时才看到这个错误——特别是我将最新版本的 Ads SDK (4.2.0) 添加到现有的已经在使用主要 Flurry SDK 但忽略更新后者的项目,因此它仍然在版本 4.0.0 上。

更新我的 Flurry SDK 副本导致链接问题消失。

根据该提示,我查看了 4.2.0 libFlurry.a 内部,发现它定义了符号 _OBJC_CLASS_$_FlurryDataSenderBlockInfo 和其他符号。因此,如果您要与之链接,则应定义符号。

所以我会说:

  • 你根本没有链接到 libFlurry.a;或者
  • 您正在链接旧版本的 libFlurry.a。
于 2013-05-02T19:52:24.550 回答