相同的应用程序之前已经被批准了两次,但经过一些更改(例如设置图像视图并再次提交应用程序)后,Apple拒绝了我的应用程序以查看以下错误:
表现 - 2.5.1
您的应用使用或引用以下非公共API:
setResult:nextStarIndex
App Store上不允许使用非公共API,因为如果这些API发生变化,可能会导致糟糕的用户体验。
如果用户包含私有API,他们如何测试他/她的应用程序?
我没有在我的项目中的任何地方使用setResult:
和nextStarIndex
代码,所以我该怎么办?
我最后一次遇到这个问题是因为我的代码中的方法与Cocoa API中的私有方法之间存在名称空间冲突。您还可以使用grep
找出您正在使用这些选择器的确切位置:
grep -R 'setResult:' *
如果您没有通过搜索项目找到该引用,则问题最常见于已编译的第三方库中。您可以使用“nm”列出已编译库中的符号。
我的一个应用程序被完全相同的原因拒绝了。我使用最新的Facebook SDK(此时为4.15.1)更新了我的项目,并且应用程序通过了审核。
如果您需要签入您的应用程序,只需转到终端中的项目目录路径并尝试以下命令。
grep -R 'setResult:' .
在可执行文件上运行otool。
转到构建目录:
AppName的/编译/ AppName.build /释放-的iPhoneOS / AppName.build /目标正常/ ARMv6的/
并运行
字符串AppName | grep'setResult'知道哪个框架使用了该特定方法。