我的 iOS 应用的定位服务声明有问题

Posted

技术标签:

【中文标题】我的 iOS 应用的定位服务声明有问题【英文标题】:Something wrong with my iOS app's location service declaration 【发布时间】:2017-05-11 15:28:58 【问题描述】:

几天前,当我使用 Xcode 将我的应用程序的新版本上传到 App Store 时,我收到了来自 iTunes Connect 的以下电子邮件:

主题:iTunes Connect:您的应用AppName有一个或多个问题

尊敬的开发者,

我们发现您最近交付的一个或多个问题 “应用程序名称”。

以下内容仅供您参考,不需要任何 行动:

我们检测到此构建需要使用标准位置 在后台运行时提供服务。需要位置的应用 服务现在将在应用程序上显示以下文本免责声明 店铺。 '这个应用程序可能会使用你的位置,即使它没有打开,这 会缩短设备的电池寿命”。

问候,

App Store 团队

而且我上传的构建版本无法选择在 iTunes Connect 网站上提交审核。

我应该如何处理这个问题?谢谢。

【问题讨论】:

我也刚开始看到这个问题,并且没有生成此电子邮件警告的构建可以提交以供审查。这似乎是今年冬季冻结后的新事物 【参考方案1】:

我很久以前就遇到过这个问题,这是因为如果您的应用仍在后台使用定位服务,它可能会消耗电池。

1)如果你想一直使用定位服务,你应该设置这个,可以让你通过itunes验证:

您应该在您的Info.plist 中添加NSLocationAlwaysUsageDescription 权限,并设置值,为什么要始终使用位置服务。

2)如果您只需要在用户使用应用程序时使用此持续时间来使用位置服务。您应该NSLocationWhenInUseUsageDescription而不是NSLocationAlwaysUsageDescription权限,并且您还应该设置说明为什么要使用该权限。

【讨论】:

此问题与 plist 描述无关。如果未设置该描述并且应用程序尝试访问位置服务,应用程序将崩溃。这个问题是关于上传构建时收到的 iTunes Connect 电子邮件。【参考方案2】: 苹果指南 * 如果您的应用即使在后台模式下也需要使用位置信息,则必须在应用说明和 iTunesConnect 应用页面底部输入此文本

此应用即使在未打开时也可能会使用您的位置信息,这会缩短设备电池寿命

放置此免责声明很重要,这样如果用户下载您的应用程序,他应该知道即使应用程序未使用,位置服务也会对应用程序处于活动状态。

您不必重新构建,只需使用此免责声明更新说明并再次提交以供审核。它将被重新审查,如果所有条款和条件都有效,它将被批准。

由于每年的圣诞节假期,Apple 的新应用上传服务在 12 月 23 日至 12 月 27 日期间未启用,因此您应该尝试在此之后提交审核。

如果您有任何问题,请告诉我。

【讨论】:

我有你在我的应用程序描述中提到的文本,但我上传到 iTunes Connect 的每个构建都会触发 Apple 向我整个内部团队发送的警告电子邮件。我们还没有提交到 App Store,但我们每天都会对 iTunes Connect 进行多次构建。我知道这只是一个警告,但我希望垃圾邮件在某个时候停止,有什么方法可以实现吗? 我们也有同样的问题。我向 iTunes Connect 发送了一条消息:itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wa/… 等待回复 @haplo1384 你做同样的事情写信给苹果,甚至你可以联系技术支持团队,因为你从苹果收到的电子邮件突出了唯一的问题是应用描述。你可以分享你在应用描述部分中放置确切描述的屏幕截图吗? 我也做了同样的事情并给 iTunes Connect 发了一条消息,如果他们回复我会回复的。至于我的应用描述,最后一句是逐字逐句复制粘贴出的苹果警告邮件。 它仍然没有让电子邮件静音?【参考方案3】:

在遇到同样的问题时,我发现

功能 -> 后台模式 -> 位置更新

已为我的应用启用。

如果您的应用不需要在后台更新位置信息,请取消选择此项。

【讨论】:

在实施地理围栏时是否需要启用位置更新? @YogendraPatel 是的【参考方案4】:

其实这不是什么大问题。 Apple 评论员已经说过您“不需要任何操作”,他/她只建议您更合适地显示警告文本(当您请求在 UIAlertView 中使用定位服务时出现),例如此消息“此应用可能使用您的位置”即使它没有打开,也会缩短设备的电池寿命”。

您可以在 .plist 文件中添加描述性字符串。

【讨论】:

此问题与 plist 描述无关。如果未设置该描述并且应用程序尝试访问位置服务,应用程序将崩溃。这个问题是关于上传构建时收到的 iTunes Connect 电子邮件。【参考方案5】:

可能您忘记在 plist 中添加 NSLocationWhenInUseUsageDescription 或 NSLocationAlwaysUsageDescription 或者您没有在项目的功能中添加背景模式。

【讨论】:

此问题与 plist 描述无关。如果未设置该描述并且应用程序尝试访问位置服务,应用程序将崩溃。这个问题是关于上传构建时收到的 iTunes Connect 电子邮件。【参考方案6】:

问题在于您正在显示的字符串消息。我也曾经陷入过这种问题,我使用的是“烧掉你的手机”之类的应用程序名称。因此,通过更改位置授权的消息字符串就可以了。

【讨论】:

【参考方案7】:

我遇到了同样的问题,并就此事联系了iTunes Connect。以下是他们迄今为止的回应的摘录:

我确实理解您对继续收到通知的担忧 每次更新或构建。我可以确认这是按预期工作的。

...

有些电子邮件是由 iTunes Connect 系统生成的,并且 目前没有办法禁用它们。如果您向我们提供 反馈我们将非常乐意将其提供给适当的 未来改进的团队。

...

您绝对可以尝试添加应用描述,看看是否会 解决电子邮件通知。

但是,我们不能向您保证这会取消电子邮件 通知。

只是想展示他们出色的客户支持和对自己产品的模范知识......

但是,我还没有确认将文本放在描述字段中是否会使电子邮件静音。

此处的其他回复提到了 Info.plist 中的隐私使用说明,但此电子邮件与此问题没有直接关系。无论如何,如果您忽略包含这些内容,您的应用将在您尝试访问定位服务时崩溃(除非您的应用的 ios 10 之前的版本已获得许可)。

【讨论】:

您是刚开始收到这些电子邮件吗?我们做到了。我们一直在定期更新应用程序。最后一次是十一月,没有邮件。现在我们看到了这些消息(一月构建)。 是的,最近开始。应该是新的变化。显然没用,因为几乎没有人阅读应用程序描述。无论如何,App Store 并不是为了突出它们而设计的。 嗯,刚刚注意到我不再收到它们了。我不认为我们改变了什么。可能他们修好了?

以上是关于我的 iOS 应用的定位服务声明有问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS : App Store 审批流程 - 加密使用声明

制作用于我的 iOS 应用程序的 Web 服务器 [关闭]

iOS中是不是有任何相当于Android的服务?

如何在我的解析服务器上实现 Android 和 IOS 应用程序的预定推送通知?

如何在我的 Flutter 应用程序中从 JWT 获取声明

如何使 iOS 应用程序与我的 Parse Web 服务器通信?