最近我因Apple使用私有API而遭到拒绝。我不确切知道什么是私有API,也不知道未记录的方法。有人可以解释一下什么是未记录的方法和私有API?我真的很困惑......
跟进:
答案 0 :(得分:10)
私有API或未记录的方法是不属于官方文档的任何对象或方法。在Objective C和其他一些语言中,查找对象支持的方法(消息)列表以及框架下的对象相对容易。 (例如,只需进入调试器并查看视图层次结构。您可能会看到文档中不存在的多个视图对象。)有时您甚至会看到有关如何在Web上使用这些方法和对象的说明
我想到的一个例子是-UIWindow _autolayoutTrace
,我在调试autolayout时一直使用它,但是没有记录,前导下划线是一个你不应该使用它的提示。这对于调试来说很好,但是如果我发送了使用该方法的代码,那肯定会被拒绝。
但Apple专门扫描这些未记录的方法,作为App Store审核流程的一部分,并拒绝使用它们的应用程序。这是因为Apple可能随时改变这些未记录的方法的工作方式。如果您的应用依赖于其中一个隐藏的类或方法,那么当Apple发布更改此行为的新版SDK时,您的应用可能会中断。
答案 1 :(得分:2)
Apple内部使用了一系列功能,但开发人员无法公开使用。
使用此类API将导致Apple拒绝该应用程序。