4

在使用 Xcode 5.1.1 提交游戏更新时,我刚刚收到以下拒绝:

您的应用包含非公共 API 使用。请检查错误,更正它们,然后重新提交您的申请。该应用程序引用了 Payload/XXX.app/XXX 中的非公共符号:MPMoviePlayerContentPreloadDidFinishNotification

XXX 是我的应用名称。

据我所知,我没有在任何地方使用它。我刚刚在我的项目中添加了 MediaPlayer.framework。有谁知道如何解决这个问题?

任何帮助,将不胜感激!

4

1 回答 1

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.

于 2014-09-12T06:26:09.710 回答