【问题标题】:macOS Performance - 2.5.1:Your app uses or references the following non-public APImacOS 性能 - 2.5.1:您的应用使用或引用以下非公共 API
【发布时间】:2017-04-02 02:15:49
【问题描述】:

我向 Mac AppStore 提交的 APP 多次被拒绝。它是一个基于VLCKit的视频应用,只用到了第三方库,也是VLCKit。这是应用拒绝问题:

“性能 - 2.5.1

您的应用使用或引用以下非公共 API:

'/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices'

: CGSCreateRegisteredCursorImage

App Store 不允许使用非公共 API,因为它可以 如果这些 API 发生变化,将导致糟糕的用户体验。

接下来的步骤

如果您在源代码中定义了同名的方法 上述 API,我们建议更改您的方法名称,以便 它们不再与 Apple 的私有 API 冲突以避免您的 应用程序在未来的提交中被标记。

此外,一个或多个上述 API 可能驻留在一个 包含在您的应用程序中的库。如果您无权访问 该库的源代码,您可以搜索已编译的二进制文件 使用“字符串”或“otool”命令行工具。 “字符串”工具可以 输出库调用的方法列表和“otool -ov” 将输出 Objective-C 类结构及其定义 方法。这些技术可以帮助您缩小范围 有问题的代码存在。

如果您无法重现此问题,请确保您正在测试 您提交审核的应用程序的确切版本,以及 您是在最低权限的环境中这样做的。见技术 问答 QA1778:如何重现针对 Mac App Store 报告的错误 提交。

有关如何符号化和读取崩溃日志的信息,请参阅 技术说明 TN2123 - CrashReporter。”

这让我抓狂了,根据苹果的反馈,我用过 "strings","otool -L" 和 "otool -ov" ,但没有找到相关内容。如何解决这个问题呢?请告诉我。谢谢!

【问题讨论】:

    标签: macos api cocoa


    【解决方案1】:

    VLC calls CGSCreateRegisteredCursorImage() in code used for screen capture.

    您可能需要从 libvlc 中删除此功能以使其通过 App Store API 检查。

    不过,更重要的是,VLC(和 libvlc)是在 GPL 下获得许可的。在继续之前,请确保您的应用程序符合此许可。

    【讨论】:

    • 感谢您的回复,在继续之前我将遵守此许可证。你知道如何修改libvlc代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    相关资源
    最近更新 更多