之前已经批准过两次相同的应用,但经过一些更改(如设置图片视图并再次提交应用)后,Apple拒绝了我的应用以查看错误:
表现 - 2.5.1
您的应用使用或引用了以下非公开API:
setResult:nextStarIndex
App Store上不允许使用非公共API,因为 如果这些API发生变化,它可能会导致糟糕的用户体验。
如果用户包含私有API,
是如何测试他/她的应用程序的?我在项目的任何地方都没有使用setResult:
和nextStarIndex
代码,所以该怎么办?
答案 0 :(得分:10)
我最后一次遇到这个问题是因为我的代码中的方法与Cocoa API中的私有方法之间存在名称空间冲突。您还可以使用grep
找出您使用这些选择器的确切位置:
grep -R 'setResult:' *
答案 1 :(得分:4)
我和你有同样的情况。现在,该应用程序已准备好出售。我希望我会帮助你解决这个问题。
"您的应用使用或引用了以下非公开API:cancelAction:,defaultInstance"
我解决了步骤:
(1)grep -R' defaultInstance' *
(2)grep -R' cancelAction:' * 它匹配一些项目函数名称。我也解决了。
(3)我建议在使用" grep -R"之前,你应该删除项目"构建文档文件",所以" grep -R& #34;将为我们提供更多有用的信息。
完成了
答案 2 :(得分:1)
如果您没有通过搜索项目找到该引用,则该问题最常见于已编译的第三方库中。您可以使用“nm”列出已编译库中的符号。
我的一个应用程序被完全相同的原因拒绝了。 我使用最新的Facebook SDK(此时为4.15.1)更新了我的项目,并且应用程序通过了审核。
答案 3 :(得分:1)
如果您需要签入您的应用程序,只需转到终端中的项目目录路径并尝试以下命令。
grep -R 'setResult:' .
答案 4 :(得分:0)
在excutable上运行otool。
转到构建目录:
AppName / build / AppName.build / Release-iphoneos / AppName.build / Objects-normal / armv6 /
并运行
字符串AppName | grep'setResult' 知道使用该特定方法的框架。