10

我是这项技术的新手。

从已加载的应用程序上传应用程序时,我收到以下警告。

警告说“应用程序引用了“应用程序名称”实例中的非公共选择器,viewController

请帮我解决这个警告。

提前致谢!

编辑

图片 :-

在此处输入图像描述

编辑 :-

我的申请会获得批准吗?

4

7 回答 7

6

使用应用扫描仪。它会分析您的 .app 文件以了解私有 API 方法的使用情况。

它将捕获与私有 API 方法命名相同的方法,即使它有自己的实现。此外,它会在方法中捕获 @selectors(就像官方的 iOS 自动检查器一样)。

当 performSelector: 使用作为私有方法的选择器调用时,App Scanner 无法捕捉到这种情况。但是,Apple 的工具确实可以解决这种情况。

另一个 Alternative APP Kit,虽然我没用过。试试看。

如果您还没有,请查看此问答。Apple 怎么知道你在使用私有 API?. 看起来很有帮助。

于 2012-12-05T09:00:14.813 回答
3

在整个项目中搜索 viewController 并搜索是否有任何单例实现。即使Apple批准您的申请,您的申请中也有非公共部门是不好的。您还可以使用应用扫描仪

希望对你有帮助

于 2012-12-10T09:39:45.763 回答
1

在出现此错误之前,您添加到代码中的最后一件事是什么?正如我上面的链接所指出的,该错误意味着您有一个私有 API 调用。

如果您认为这不是您的代码,那么它可能是任何包含的代码。

于 2012-12-01T06:36:09.167 回答
1

@iPhoneDev:我猜你的申请不会因为这个原因被拒绝。因为我在我的一个应用程序中遇到了这个警告,并且它被成功接受了。所以不用担心

于 2012-12-01T06:51:54.673 回答
1

我认为您可能instance在代码中的某处命名了一个函数,例如:

+(id)instance{
    return something;
}

..也许是单例实现?如果是这种情况,只需重命名它。

尽管应用程序触发了类似的警报,但我已经看到获得批准的应用程序,但是您为什么要冒被拒绝的风险呢?

于 2012-12-08T22:19:03.573 回答
0

几乎可以肯定会因此而被拒绝。

只是一个猜测,但搜索“viewController”并查看您是否引用了私有实例方法,或者可能通过点表示法引用私有实例变量:.viewController

于 2012-12-08T21:59:42.310 回答
0

不,您的应用会像这样被拒绝。确实。Apple 审查团队使用与 Xcode 相同的检查以及更多检查。

于 2012-12-09T09:21:38.417 回答