Gasper
Gasper

Reputation: 5689

Integrating Flurry AppCircle Ads with AdMob Mediation

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

Answers (1)

Tommy
Tommy

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:

  • you're not linking against libFlurry.a at all; or
  • you're linking against an old version of libFlurry.a.

Upvotes: 2

Related Questions