我目前正在使用AdMob Mediation在我的iPhone应用程序中集成Flurry AppCircle Ads;我正在为iOS 6开发。
我一直关注来自here的Flurry的集成指令,但最后,该项目甚至没有编译。每个需要的框架都与AdMob Mediation的适配器链接在一起。
以下是引发的错误:
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 Mediation会抛出错误请求广告时的运行时:
-[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xc9cc000
非常感谢任何帮助。
答案 0 :(得分: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和其余的。因此,如果您要链接,则应定义符号。
所以我要么说: