我是这项技术的新手。
从Application Loaded上传应用程序时,我收到以下警告。
警告说" 该应用引用"应用名称"中的非公开选择器instance,viewController "
请帮我解决这个警告。
提前致谢!
修改
图片: -
编辑: -
我的申请会获得批准吗?
答案 0 :(得分:6)
使用App Scanner。它分析您的.app文件以获取私有API方法。
它将捕获已被命名为私有API方法的方法,即使它具有自己的实现。此外,它会在方法中捕获@selectors(就像官方iOS自动检查程序一样)。
当使用作为私有方法的选择器调用performSelector:时,App Scanner不会捕获这种情况。但是,Apple的工具确实可以解决这个问题。
另一种选择APP Kit,虽然我没有使用它。试试看。
如果还没有,请查看此Q& A. How does Apple know you are using private API?。看起来很有帮助。
答案 1 :(得分:3)
在整个项目中搜索viewController并搜索是否有任何单例实现。 即使Apple批准您的申请,也不适合在您的申请中使用非公共部门。 您也可以使用App Scanner
希望它可以帮到你
答案 2 :(得分:1)
在收到此错误之前,您在代码中添加的最后一件事是什么?该错误意味着您有一个私有API调用,如上面的链接所示。
如果你不认为这是你的代码,那么它可能是任何包含的代码。
答案 3 :(得分:1)
@iPhoneDev:我猜你的申请不会因为这个原因而被拒绝。因为我在我的一个应用程序中遇到了此警告,并且已成功接受。所以不用担心
答案 4 :(得分:1)
我认为您的代码中可能有一个名为instance
的函数,例如:
+(id)instance{
return something;
}
..也许是单身实施?如果是这种情况,只需重命名即可。
我已经看过应用程序获得批准,尽管它们触发了类似的警报,但为什么您要冒被拒绝的风险?
答案 5 :(得分:0)
几乎肯定会被拒绝。
只是一个猜测,但搜索" viewController"并查看您是引用私有实例方法,还是通过点表示法引用私有实例变量:.viewController
答案 6 :(得分:0)
不,您的应用将会被拒绝。当然。 Apple审核小组使用与Xcode相同的检查以及其他一些检查。