Reputation: 5689
I'm currently integrating Flurry AppCircle Ads in my iPhone application with AdMob Mediation; I'm developing for iOS 6.
I've been following Flurry's integration instructions from here but in the end, the project doesn't even compile. Every needed Framework is linked along with the adapter for AdMob Mediation.
Here are the errors that are thrown:
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
Now I've figured on my own that these errors can be avoided and the app can be build if I remove -ObjC
flag from Other Linker Flags, but this flag is crucial, otherwise AdMob Mediation throws an error in runtime when an ad is requested:
-[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xc9cc000
Any help will be greatly appreciated.
Upvotes: 2
Views: 1003
Reputation: 100622
You may already have figured this out by now, but I saw this error only when I had mismatched versions between the main Flurry SDK and the Flurry Ads SDK — specifically I added the latest version of the Ads SDK (4.2.0) to an existing project that was already using the main Flurry SDK but neglected to update the latter, so it was still on version 4.0.0.
Updating my copy of the Flurry SDK caused the linkage problems to go away.
Following up on that tip, I looked inside the 4.2.0 libFlurry.a and saw that it defines the symbols _OBJC_CLASS_$_FlurryDataSenderBlockInfo and the rest. So if you're linking against that then the symbols should be defined.
So I'd say that either:
Upvotes: 2