Search code examples
iosflurry

Unable to add Flurry Analytics to my iOS project


I want to try Flurry analytics, but not any of the ad or video stuff. This is the most recent version, 4.0.1, which I just grabbed from their website.

I get this after adding the directory to my project:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_MPMoviePlayerController", referenced from:
  objc-class-ref in libFlurryAds.a(FlurryVideoPlayer.o)
  "_MPMoviePlayerWillEnterFullscreenNotification", referenced from:
  -[FlurryVideoPlayer init] in libFlurryAds.a(FlurryVideoPlayer.o)
  "_MPMoviePlayerDidEnterFullscreenNotification", referenced from:
  -[FlurryVideoPlayer init] in libFlurryAds.a(FlurryVideoPlayer.o)
  "_MPMoviePlayerLoadStateDidChangeNotification", referenced from:
  -[FlurryVideoPlayer playVideo:view:ad:] in libFlurryAds.a(FlurryVideoPlayer.o)
  -[FlurryVideoPlayer moviePlayerLoadStateChanged:] in libFlurryAds.a(FlurryVideoPlayer.o)
  "_MPMoviePlayerPlaybackStateDidChangeNotification", referenced from:
  -[FlurryVideoPlayer playVideo:view:ad:] in libFlurryAds.a(FlurryVideoPlayer.o)
  "_MPMoviePlayerContentPreloadDidFinishNotification", referenced from:
  -[FlurryVideoPlayer playVideo:view:ad:] in libFlurryAds.a(FlurryVideoPlayer.o)
  -[FlurryVideoPlayer moviePreloadDidFinish:] in libFlurryAds.a(FlurryVideoPlayer.o)
  "_MPMoviePlayerPlaybackDidFinishNotification", referenced from:
  -[FlurryVideoPlayer playVideo:view:ad:] in libFlurryAds.a(FlurryVideoPlayer.o)
  -[FlurryVideoPlayer moviePreloadDidFinish:] in libFlurryAds.a(FlurryVideoPlayer.o)
  -[FlurryVideoPlayer stopMovie] in libFlurryAds.a(FlurryVideoPlayer.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Solution

  • I figured it out - the Flurry API has changed so that rather than signaling FlurryAnalytics, you simply signal Flurry. This was documented in the comments of the .h file but scarcely otherwise.

    I also had to remove the FlurryAds directory from the downloaded API (4.0.1) because I don't have its dependencies installed.