在Apple应用商店上传应用程序时收到警告

时间:2012-12-01 06:32:35

标签: iphone objective-c ios application-loader

我是这项技术的新手。

从Application Loaded上传应用程序时,我收到以下警告。

警告说" 该应用引用"应用名称"中的非公开选择器instance,viewController "

请帮我解决这个警告。

提前致谢!

修改

图片: -

enter image description here

编辑: -

我的申请会获得批准吗?

7 个答案:

答案 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相同的检查以及其他一些检查。