含义 - 使用非公共API的应用程序将被拒绝

时间:2015-01-04 12:27:22

标签: ios iphone api itunesconnect

由于使用了非公共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文件中没有提到? 请帮我理解

1 个答案:

答案 0 :(得分:3)

您要求澄清a rejection,这很可能只是苹果公司的一个错误。这个列表看起来像是一堆误报。他们所说的只是你似乎在调用一堆他们认为属于私有API的方法。

在这个问题中,你提供了一个稻草人,向我们展示了一个无法编译的私有方法的调用。你好像在问我怎么可能不小心打电话给Apple私有API?"

问题是,很难不小心调用私有API。您可以创建一个公开私有API的类别@interface。还有其他方法,但这根本不是你不小心做的事情。您必须有意识地采取措施来调用私有API。

因此,问题就变成了如何从Apple获得误报。您可能根本不使用Apple的私有API,但碰巧在您自己的类中使用相同的签名方法。这可能会导致误报,只需更改方法名称即可解决。

但是在这种情况下,我认为有一些完全不同的东西,我不认为值得尝试追踪它,直到你听到Apple的回复。在你收到他们的回复之前,没有必要让所有人了解它。

相关问题