4

I just received the following rejection when submitting an update to my game using Xcode 5.1.1:

Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application. The app references non-public symbols in Payload/XXX.app/XXX: MPMoviePlayerContentPreloadDidFinishNotification

with XXX is my app name.

As far as I know I'm not using this anywhere. I just added MediaPlayer.framework in my project. Does anyone know how to fix this issue?

Any help would be appreciated!

Nikel Arteta
  • 548
  • 1
  • 6
  • 25

1 Answers1

5

To find out which part of your executable requires this symbol, disable link with MediaPlayer.framework and look for the libraries which generates a link error with symbol MPMoviePlayerContentPreloadDidFinishNotification. After you find out who is guilty, you can update or remove this library from your project.

In my case it was old version of flurry:

Undefined symbols for architecture armv7:
  "_MPMoviePlayerContentPreloadDidFinishNotification", referenced from:
      -[FlurryVideoPlayer playVideo:view:ad:] in libFlurryAds.a(libFlurryAds.a-armv7-master.o)
      -[FlurryVideoPlayer moviePreloadDidFinish:] in libFlurryAds.a(libFlurryAds.a-armv7-master.o)

I updated flurry to the latest version and checked that it's not requires anymore MPMoviePlayerContentPreloadDidFinishNotification symbol. Problem was solved.

goodov
  • 1,358
  • 10
  • 12
  • Getting the same issue, I followed your good advice, but removing both MediaPlayer and AVFoundation frameworks does not cause any error cleaning, and then building my projet. In my app, videos are read by using a web view only. How can I get an error with MPMoviePlayerContentPreloadDidFinishNotification since the MediaPlayer.framework is not referenced to my project? – Lisarien Sep 14 '14 at 10:01
  • 1
    @Lisarien this is really weird. Try to look in final binary (`YourApp.app/YourApp`) for this symbol. If you see it there, then try to seek its source. Maybe some third party library declares it, which is also weird, but who knows. – goodov Sep 14 '14 at 17:22
  • Thanks for your help. Indeed, I had the SDK for advertising from the Digital Advert French company which seems to use this API. What is really weird, it's before Apple changes the iTunesConnect no issue was returned uploading the IPA file and the app has well been accepted for the App Store. Since the last changed within iTunesConnect, it's not possible to upload an update anymore due to this error. – Lisarien Sep 25 '14 at 10:58
  • @Lisarien how did you solved your issue? I have the same problem, probably due to the same advertising SDK – Mathieu Sep 26 '14 at 07:54
  • @Mathieu I simply disabled the SDK waiting for a correction from Digital Advert. But at this time I don't get any response from them. Today the app which has been validated for Appstore few days ago is using iAd for advertising. I'll update when a corrected SDK will be available. – Lisarien Sep 28 '14 at 07:58