繁体   English   中英

iOS应用程序被拒绝:非公共API

[英]iOS App Rejected : non-public APIs

相同的应用程序之前已经被批准了两次,但经过一些更改(例如设置图像视图并再次提交应用程序)后,Apple拒绝了我的应用程序以查看以下错误:

表现 - 2.5.1

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

setResult:nextStarIndex

App Store上不允许使用非公共API,因为如果这些API发生变化,可能会导致糟糕的用户体验。

如果用户包含私有API,他们如何测试他/她的应用程序?

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

我最后一次遇到这个问题是因为我的代码中的方法与Cocoa API中的私有方法之间存在名称空间冲突。 您还可以使用grep找出您正在使用这些选择器的确切位置:

grep -R 'setResult:' *

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

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

我解决了步骤:

(1)grep -R'defaultInstance'*

在此输入图像描述 CrashReporterSDK匹配,所以我删除它。

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

(3)我建议在使用“grep -R”之前,你应该删除项目的“构建文档文件”,因此“grep -R”将为我们提供更多有用的信息。

如果您没有通过搜索项目找到该引用,则问题最常见于已编译的第三方库中。 您可以使用“nm”列出已编译库中的符号。

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

如果您需要签入您的应用程序,只需转到终端中的项目目录路径并尝试以下命令。

    grep -R 'setResult:' .

在exutable上运行otool。

转到构建目录:

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

并运行

字符串AppName | grep'setResult'知道哪个框架使用了该特定方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM