【问题标题】:Submission deny with non-public API MPMoviePlayerContenPreloadDidFinishNotification使用非公共 API MPMoviePlayerContenPreloadDidFinishNotification 拒绝提交
【发布时间】:2014-09-11 03:24:35
【问题描述】:

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

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

XXX 是我的应用名称。

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

任何帮助将不胜感激!

【问题讨论】:

    标签: ios xcode5 cocos2d-x-2.x


    【解决方案1】:

    要找出可执行文件的哪个部分需要此符号,请禁用 MediaPlayer.framework 链接并查找生成链接错误符号 MPMoviePlayerContentPreloadDidFinishNotification 的库。在查明谁有罪后,您可以从您的项目中更新或删除此库。

    在我的情况下,它是旧版本的 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)
    

    我将 Flurry 更新到最新版本并检查它是否不再需要 MPMoviePlayerContentPreloadDidFinishNotification 符号。问题解决了。

    【讨论】:

    • 遇到同样的问题,我听从了你的好建议,但同时删除 MediaPlayer 和 AVFoundation 框架不会导致任何错误清理,然后构建我的项目。在我的应用程序中,仅使用网络视图阅读视频。由于我的项目没有引用 MediaPlayer.framework,如何使用 MPMoviePlayerContentPreloadDidFinishNotification 出现错误?
    • @Lisarien 这真的很奇怪。尝试在最终二进制文件 (YourApp.app/YourApp) 中查找此符号。如果你在那里看到它,然后尝试寻找它的来源。也许是某个第三方库声明了它,这也很奇怪,但谁知道呢。
    • 感谢您的帮助。事实上,我有来自法国数字广告公司的广告 SDK,它似乎使用了这个 API。真正奇怪的是,在 Apple 更改 iTunesConnect 之前,上传 IPA 文件并没有返回任何问题,并且该应用程序已被 App Store 接受。自从上次在 iTunesConnect 中更改后,由于此错误,无法再上传更新。
    • @Lisarien 你是如何解决你的问题的?我有同样的问题,可能是由于相同的广告SDK
    • @Mathieu 我只是禁用了 SDK,等待来自 Digital Advert 的更正。但此时我没有得到他们的任何回应。今天,几天前已经通过 Appstore 验证的应用程序正在使用 iAd 进行广告。当有更正的 SDK 可用时,我会更新。
    猜你喜欢
    • 2017-01-17
    • 2017-11-25
    • 2011-09-01
    • 2017-01-24
    • 1970-01-01
    • 2013-05-10
    • 2017-01-26
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多