1

最近我收到了 Apple 的拒绝,因为我使用了私有 API。我不确切知道什么是私有 API 或未记录的方法。有人可以解释一下什么是未记录的方法和私有 API 吗?我真的对此感到困惑......

跟进:

  • 究竟什么是“官方文档”?我可以使用一些由第三方制作的框架和类,比如亚马逊的吗?
4

2 回答 2

10

私有 API 或未记录的方法是不属于官方文档的任何对象或方法。在 Objective C 和其他一些语言中,查找对象支持的方法(消息)列表以及框架下的对象相对容易。(例如,只需进入调试器并查看视图层次结构。您可能会看到文档中不存在的几个视图对象。)有时您甚至会在 Web 上看到有关如何使用这些方法和对象的说明.

一个让我想到的例子是-UIWindow _autolayoutTrace,我在调试自动布局时一直使用它,但它没有记录在案,并且前导下划线暗示你不应该使用它。这对于调试来说很好,但如果我发布了使用该方法的代码,它肯定会被拒绝。

但 Apple 在 App Store 审查过程中专门扫描这些未记录的方法,并拒绝使用它们的应用程序。这是因为 Apple 可能会随时更改这些未记录的方法的工作方式。如果您的应用程序依赖于这些隐藏的类或方法之一,那么当 Apple 发布更改此行为的新版本 SDK 时,您的应用程序可能会中断。

于 2013-04-08T22:16:00.420 回答
2

Apple 内部使用了一组功能,但不向开发人员公开。

对此类 API 的任何使用都将导致 Apple 拒绝该应用程序。

于 2013-04-08T22:15:41.350 回答