【问题标题】:iOS10: App rejected due to method called "removeEvents"iOS10:应用程序因名为“removeEvents”的方法而被拒绝
【发布时间】: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


【解决方案1】:

没有更多细节?在那种情况下,您没有仔细阅读。例如,如果它发生在第三方库中,将会有一个指向拒绝的链接,它准确地解释了如何查找它。去过也做过。

所以你可以提出投诉,他们会嘲笑你,因为你没有费心阅读应用拒绝。

为了省去你的麻烦,搜索你自己的源代码,然后使用字符串和otool工具找到导致问题的库,更新库并检查问题是否消失。

如果您根据您的 cmets 自己使用 removeEvents,请修复您的代码。

【讨论】:

  • 没有关于我的意思的发现的更多细节。另外我在帖子中写过我使用了这些工具并且没有列出这样的方法。如帖子所述,removeEvents 不是私有 API 的一部分。
【解决方案2】:

审核委员会的一位成员已与我们联系,并确认获取有关与私有 api 冲突的信息的唯一方法是让应用程序通过审核过程。苹果提出在两天内完成新的审查,他们也照做了。

我已经重命名了方法,应用没有被拒绝。

【讨论】:

  • 新审核的结果如何?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 2016-08-09
  • 2022-01-01
  • 2017-02-04
  • 2017-02-11
  • 1970-01-01
相关资源
最近更新 更多