【问题标题】:Apple store rejected iOS application due to background modes苹果商店因后台模式拒绝 iOS 应用程序
【发布时间】:2014-11-19 21:31:22
【问题描述】:

原因

2.16:多任务应用程序只能将后台服务用于其预期目的:VoIP、音频播放、定位、任务完成、本地通知等。 17.5:包含账户注册或访问用户现有账户的应用程序必须包含隐私政策,否则将被拒绝 ----- 2.16 -----

我们发现您的应用使用后台模式,但不包含需要该模式持续运行的功能。此行为不符合 App Store 审核指南。

我们注意到您的应用在 Info.plist 的 UIBackgroundModes 键中声明支持位置,但不包含需要持久位置的功能。具体来说,它是适当的 修改您的应用以使用发生重大变化的位置服务来实现您所描述的功能。

由于您的应用程序不需要持久的实时位置更新,我们建议使用重大变化位置服务或区域监控位置服务。

有关这些选项的更多信息,请参阅位置感知编程指南中的“启动重大变化位置服务”和“监控基于形状的区域”部分。

如果您选择添加使用位置后台模式的功能,请在您的应用说明中包含以下电池使用免责声明:

“继续使用在后台运行的 GPS 会大大缩短电池寿命。”

-- 17.5 -----

我们还注意到,您的应用包括帐户注册或对用户现有帐户的访问,但不包含隐私政策,这不符合 App Store 审核指南。

请更新您的应用元数据以包含隐私政策,并确保您提供的隐私政策 URL 将用户定向到预期目的地。

如果您的 iTunes Connect 应用程序状态被拒绝,则需要一个新的二进制文件。上传新的二进制文件时进行所需的元数据更改。

注意:请确保通过选择每个特定的本地化并进行适当的更改来对所有应用本地化进行任何元数据更改。

对于离散代码级别的问题,您可能希望咨询 Apple 开发者技术支持。当 DTS 工程师跟进您时,请准备好提供:

1。在 2.16 中重新提交应用到商店之前我需要做什么?

2。目前我已经在其中包含了隐私政策,即使他们拒绝了,有什么线索吗?

【问题讨论】:

  • 对于 1) 只需从 info.plist 中删除 UIBackgroundModes,就像他们说的简单。
  • 在位置更新的情况下,我可以使用此代码获取位置,还是需要使用重要的位置更新来获取用户位置? locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; locationManager.distanceFilter = 10; // 米 [locationManager startUpdatingLocation];
  • 现阶段我对您的应用程序了解得不够多,无法就编码问题提供任何形式的答案/评论。我根据苹果告诉您的操作提供了评论。他们说您没有任何需要使用UIBackgroundModes 的功能,并且您还没有提供隐私政策网址。
  • @shine:你有没有提到“在后台继续使用 GPS 会显着降低电池寿命。”在您的应用程序描述中。
  • @Deepak:是的,我做到了

标签: ios objective-c iphone app-store app-store-connect


【解决方案1】:

对于 2.16 根据App Store Review Guidelines,我可以说您在后台使用位置服务或任何其他在应用程序中未始终使用的服务。那么为什么要把负载放在后台进程中呢?决定您的流程并在此基础上主动使用这些服务。不要运行或使用任何后台服务。有时后台进程会因其他应用程序或内存相关问题的故障而自动停止。 例如假设我想将 GPS 用于基于位置的服务。为什么我要调用服务调用,直到我想要通过在后台服务中编写经度和纬度?每当我需要 GPS 数据时,我都会使用它。

对于 17.5,我猜你已经上传了隐私政策,所以没关系。 因此,相应地进行更改并再次上传构建。 祝你好运。

【讨论】:

  • 根据苹果文档,如果应用在后台使用位置服务,我们可以使用重要的位置更新。如果应用程序需要像地图一样持续更新位置,那么只有我们可以使用后台位置更新。在我的应用中,我还在需要时使用了位置更新。
【解决方案2】:

需要在 plist 中为 Backgroundmode 指定 Key。示例 如果您在前台跟踪用户位置并在功能中使用背景模式,那么您的应用程序可能会在二进制测试中被拒绝。 确保您对正在使用的背景同时使用功能和 Plist 键。

【讨论】:

  • 根据苹果文档,如果应用在后台使用位置服务,我们可以使用重要的位置更新。如果应用需要像地图一样持续更新位置,那么只有我们可以使用后台位置更新。
【解决方案3】:

我已经彻底审查了上述 2.16 的原因 - 这看起来类似于我们为我们的一个应用程序所做的。

在我们的场景中 - 元数据被拒绝。我们只是在描述的末尾添加了这一行。 免责声明:继续使用在后台运行的 GPS 会大大缩短电池寿命。

如果在您的情况下 - 如果您被要求上传新的二进制文件。除了上述行之外,还请遵循上述修改 UIBackgroundModes 的建议,并确保这将如何影响您的应用功能。

对于 17.5 - 应用程序应该可以通过非常有限的注册信息访问 - 而不是冗长的字段 - 并且更应该清楚地说明哪个字段是强制性和可选的。 请在隐私政策中提及您需要此类信息的原因。还请查看其他应用的一些示例隐私政策。

希望这个答案对某人有所帮助。编码愉快。

【讨论】:

    猜你喜欢
    • 2017-08-27
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    相关资源
    最近更新 更多