由于使用了非公共API
,iTunes拒绝了我们的应用我们发现您的应用使用了一个或多个非公开API,这些API不符合App Store审核指南。不允许使用非公共API,因为如果这些API发生变化,可能会导致糟糕的用户体验。
我们在您的应用中发现了以下非公开API: .......
如果您的源代码中定义的方法与上述API的名称相同,我们建议您更改方法名称,以便它们不再与Apple的私有API发生冲突,以避免在将来的提交中标记您的应用程序。 / p>
拒绝的含义是什么?
是否意味着:有一些苹果界面“SomeAppleInterface”
// SomeAppleInterface.m
@implementation SomeAppleInterface
- (void)SomePrivateAPI // this api doesn't exists in SomeAppleInterface.h file
{
// ... some code
}
在我的代码中,我调用了一个Apple类的私有api:
- (void)MyCodeMethod
{
SomeAppleInterface x;
[x SomePrivateAPI];
}
是这个错误的意思吗?如果是,我怎么能调用这个私有方法,它在h文件中没有提到? 请帮我理解
答案 0 :(得分:3)
您要求澄清a rejection,这很可能只是苹果公司的一个错误。这个列表看起来像是一堆误报。他们所说的只是你似乎在调用一堆他们认为属于私有API的方法。
在这个问题中,你提供了一个稻草人,向我们展示了一个无法编译的私有方法的调用。你好像在问我怎么可能不小心打电话给Apple私有API?"
问题是,很难不小心调用私有API。您可以创建一个公开私有API的类别@interface
。还有其他方法,但这根本不是你不小心做的事情。您必须有意识地采取措施来调用私有API。
因此,问题就变成了如何从Apple获得误报。您可能根本不使用Apple的私有API,但碰巧在您自己的类中使用相同的签名方法。这可能会导致误报,只需更改方法名称即可解决。
但是在这种情况下,我认为有一些完全不同的东西,我不认为值得尝试追踪它,直到你听到Apple的回复。在你收到他们的回复之前,没有必要让所有人了解它。