iOS应用被拒绝:非公开的API

相同的应用程序已经被批准了两次之前,但经过一些改变,如设置图像视图和提交应用程序,苹果拒绝了我的应用程序以下错误:

性能 – 2.5.1

您的应用使用或引用以下非公开API:

setResult:nextStarIndex

应用程序商店不允许使用非公共API,因为如果这些API发生更改,可能会导致糟糕的用户体验。

如果用户在包含私有API的情况下如何testing他/她的应用程序?

我没有在我的项目中的任何地方使用setResult:nextStarIndex代码,所以我该怎么办?

我最后一次遇到这种情况是因为我的代码中的方法和Cocoa API中的私有方法之间的命名空间冲突。 你也可以使用grep来找出你正在使用这些select器的地方:

 grep -R 'setResult:' * 

我和你有同样的情况 现在,该应用程序已准备好出售。 我希望我会帮你解决这个问题。

“您的应用程序使用或引用以下非公共API:cancelAction :, defaultInstance”

我解决的步骤:

(1)grep -R'defaultInstance'*

在这里输入图像说明 CrashReporterSDK匹配,所以我删除它。

(2)grep -R'cancelAction:'*它匹配一些项目函数名称。 我也解决它们。

(3)我build议在使用“grep -R”之前,应该删除项目的“build document files”,所以“grep -R”会给我们更多有用的信息。

如果你没有find你的项目search引用,这个问题是编译的第三方库中最喜欢的。 您可以使用“nm”列出已编译库中的符号。

我的一个应用被同样的原因拒绝了。 我使用最新的Facebook SDK更新了我的项目(此时为4.15.1),并且该应用程序通过了审核。

在可执行文件上运行otool。

转到生成目录:

AppName的/编译/ AppName.build /释放-的iPhoneOS / AppName.build /目标正常/ ARMv6的/

并运行

stringAppName | grep'setResult'来知道哪个框架使用了特定的方法。