【发布时间】:2017-01-24 07:24:28
【问题描述】:
在应用程序中编译时是否存在不允许的方法列表?还是不允许的语法?
最近收到来自 Connect 的这条消息,我们的应用由于 removeEvents 方法名称而被拒绝:
您的应用使用或引用以下非公共 API:
删除事件:
App Store 不允许使用非公共 API,因为如果这些 API 发生变化,可能会导致糟糕的用户体验。
结束。没有关于调查结果的更多细节。
该方法在应用程序中用于核心数据对象(从 NSManagedObject 子类化)。对象(和方法)由mogenerator app 生成了很长时间。我在 iOS10 的更新评论 guidelines 中没有找到任何与此相关的参考。
问题在于,在 Apple 的拒绝声明中,没有私有 api,也没有常规的对象描述,或者我可以遵循的任何原则,以避免下次批准应用程序时出现这种情况。然后,它使审查成为一个不可预测的过程。
我找不到任何使用 nm 或 otool 的方法的痕迹。他们都没有找到对此的参考。
编辑:在 iTunes Connect 中可以选择向 App Review Board 提交上诉。我以前没有注意到这一点。问题是他们何时会审核评论。
【问题讨论】:
-
看起来像是误报,因为您为自己的类使用了一个方法名称,该方法名称在 Apple 的某个类中是私有的。尝试回应 Apple 并要求他们重新考虑他们的决定。 (我认为这与 Objective-C 的性质有关,其中方法名称是可见的,但很难分辨它被发送到哪个类。)
-
我猜,他们在任何框架中扫描了二进制文件及其列入黑名单的方法,但他们只是拒绝了它。您可以使用 iTunesConnect 解决中心要求他们再次审核。
-
您是否有任何第三方依赖项可能使用这样命名的方法?
-
@Codo 有什么方法可以投诉吗?因为该消息提供的唯一链接是 Apple 的技术支持。我可以使用工具 -ov myAppBinary |排序 |独特 | grep removeEvent 方法(它不存在)。唯一使用此 removeEvents 的地方是我们自己的 NSManagedObject 子类。也谢谢阿迪尔和桑迪。
-
您的应用在上传期间或稍后在官方审核期间是否已被拒绝?如果是前者,那我无能为力,因为我没有这方面的经验。
标签: objective-c appstore-approval ios10 private-methods