【问题标题】:Binary Rejected: Your app uses public APIs in an unapproved mannerBinary Rejected:您的应用以未经批准的方式使用公共 API
【发布时间】:2019-03-16 04:16:07
【问题描述】:

Apple 已拒绝上传到 App Store 的 iOS 应用程序。我开发了一个在 iOS 设备中安装签名配置文件 (.mobileconfig) 的应用程序。

我无法弄清楚我以未经批准的方式使用了哪个公共 API。

  1. 是从服务器下载配置文件然后提示用户安装的HTTP请求吗?

  2. 我正在使用安全框架(SecCertificate、SecPolicy、SecTrust 等)验证配置文件是否已安装在 iOS 设备中。我不确定这是否是问题所在。

  3. 我还应该寻找什么来找出特定的公共 API?

以下是 Apple 的回应:

指南 2.5.1 - 性能 - 软件要求

此外,您的应用以未经批准的方式使用公共 API,这不符合 App Store 审核指南的指南 2.5.1。

由于没有准确的方法来预测 API 可能被修改的方式以及这些修改可能产生的影响,Apple 不允许在 App Store 应用中未经批准使用公共 API。

后续步骤

请修改您的应用,以确保以 Apple 规定的方式使用记录在案的 API。

【问题讨论】:

  • 你的应用是做什么的?为什么需要下载配置文件?
  • 我们开发了它来强化一些设备设置,比如应该启用密码,应该通过安装配置文件关闭 Siri 等
  • 您是否告知用户您的配置文件将要做什么?未经用户同意,Apple 不允许更改此类设置。
  • 是的,我们已通知用户并且同意消息已配置。

标签: ios iphone mobile-development configuration-profile


【解决方案1】:

TL;博士

使用 MDM/VPN 进行广告拦截或屏幕时间监控不符合 App Store Review Guidelines。此外,Apple 将从 AppStore 中删除使用相同公共 API 的现有应用程序。

更新(2019 年 4 月 28 日) - Apple 发布 press update 关于家长控制应用程序。

完整案例

我从 Apple 那里得到了相同的应用拒绝原因。

来自 Apple
您的应用以未经批准的方式使用公共 API,这不符合 App Store 审核指南的指南 2.5.1。 由于没有准确的方法来预测如何修改 API 以及这些修改可能产生的影响,Apple 不允许在 App Store 应用中未经批准使用公共 API。

我的应用程序是一个家长控制应用程序,它使用 iOS MDM(移动设备管理)协议在孩子的时间限制结束后隐藏/取消隐藏设备应用程序。因此,我将此回复发送给 Apple 审核团队


关于 2.5.1,我们相信我们的 API 以 Apple 规定的方式使用。您能否通过此聊天向我们提供一个不合规的 API 示例,以便我们了解要寻找什么以及需要做什么?

在此之后,我向他们发送了 3 条后续消息,但苹果方面一无所获。所以,我再次提交了应用程序,没有任何更改。苹果审查团队再次以同样的理由拒绝了该应用程序。同样,我也发送了相同的消息和呼叫请求,但苹果方面没有收到任何消息。

所以,几天后我再次提交了相同的应用程序,没有任何更改。应用再次被拒绝。但这次他们接受了我的来电请求。


我们能否致电了解您的疑虑,以便我们适当地解决它们?谢谢。

.

来自苹果 你好,

再次感谢您的回复。

如果您希望通过电话讨论此问题,我们可以安排 Apple 代表在接下来的 3 到 5 个工作日内给您打电话,讨论您的 App Review 问题。

要请求通话,请回复此消息并提供最适合您的电话号码。

最好的问候,

应用商店评论

.


您好,请致电 +91XXXXXXXXXX。谢谢!

在这位 Apple Review 团队成员给我打电话后。并且说,使用 MDM/VPN 进行广告拦截或屏幕时间监控不符合 App Store 审查指南。此外,他们说他们也在通知其他开发人员。他们还将从 AppStore 中删除使用相同公共 API 的现有应用。

来自 Apple
你好,Vineet,

感谢您今天拨通电话。

正如我们所讨论的,在进一步审查后,我们继续发现该应用不符合 App Store 审查指南,例如指南 2.5.1 - 性能。

确保所有公共 API 都用于 API 的设计目的是适当的。使用 MDM/VPN 进行广告拦截或屏幕时间监控不符合 App Store 审核指南。

我们希望您考虑进行必要的更改以符合 App Store 审核指南,并重新提交您修改后的二进制文件。

如果您需要进一步说明,请通过 App Store Connect 上的解决方案中心回复此消息,或在工作日上午 11 点至下午 6 点之间通过 +1-XXX-XXX-XXXX 与我联系。

最好的问候, 应用商店评论

整个过程大约耗时 1.5 个月(2018 年 11 月 20 日至 2019 年 1 月 5 日)。

希望这可以为某人节省 1.5 个月的时间。 :P

【讨论】:

  • 虽然这看起来是一个很好的答案,但我认为这不是这个确切问题的答案。
  • @Sulthan 我认为这是同样的问题,因为 Rubal 应用程序正在使用配置文件。因为配置文件能够提供自 iOS 7 以来 Apple 不允许的 iOS 设备 UUID。这又是对公共 API 的误用。 我认为这就是他的应用被拒绝的原因。
猜你喜欢
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
相关资源
最近更新 更多