应用拒绝问题 2.5.1:使用非 public API 的应用将被拒绝(自 iOS10)

App rejection issue 2.5.1: Apps that use non-public APIs will be rejected (Since iOS10)

我们刚刚收到 Apple 对一些非 public API "contectId" 的拒绝。自从我升级到最新的 Xcode 和 Titanium SDK(也使用最新的 macOS)后,我唯一做的就是这成为一个问题。

我知道消息中有步骤,但这是 Titanium 错误还是什么?

--

您好,

感谢您重新提交。

性能 - 2.5.1

您的应用仍在使用或引用以下非public APIs:

contextId

App Store 不允许使用非public API,因为如果这些 API 发生变化,可能会导致糟糕的用户体验。

后续步骤

请修改您的应用以删除任何非public API。如果您在源代码中定义了与上述 API 同名的方法,我们建议更改您的方法名称,使其不再与 Apple 的私有 API 冲突,以避免您的应用程序在以后的提交中被标记。

此外,如果您使用的是第三方库,请更新到这些库的最新版本。如果您无权访问库的源代码,您可以使用 "strings" 或 "otool" 命令行工具搜索编译后的二进制文件。 "strings" 工具可以输出库调用的方法列表,"otool -ov" 将输出 Objective-C class 结构及其定义的方法。这些工具可以帮助您缩小问题代码所在位置的范围。您还可以使用 "nm" 工具来验证是否有任何第三方库正在调用这些 API。

资源

有关 "nm" 工具的信息,请参阅 "nm tool" Xcode 手册页。

如果没有其他方法可以提供您的应用所需的功能,您可能希望提交增强请求。

如果您难以重现报告的问题,请尝试测试技术问答 QA1764 中描述的工作流程:如何重现针对 App Store 提交报告的错误。

如果您在使用上述资源后遇到代码级问题,不妨咨询 Apple Developer 技术支持。当 DTS 工程师跟进您时,请准备好提供: - 拒绝问题的完整细节 - 截图 - 重现问题的步骤 - 符号化的崩溃日志 - 如果您的问题导致崩溃日志

此致,

应用商店评论

由于这个原因,我也有两个应用程序更新被拒绝。

在同一时期,我已经获得了其他人的批准。

被拒绝的两个应用程序更新之间的一个共同点是在我的项目中使用了以下 属性 集:

<property name="run-on-main-thread" type="bool">true</property>

虽然这不是真正的 Titanium 问题,而是 Apple 检测误报的问题,但这个问题刚刚在 Titanium 5.5 中得到修复。1.GA 及更高版本,谢谢!