【问题标题】:iOS: How does an app get listed in Settings -> Privacy -> Location ServicesiOS:应用程序如何在“设置”->“隐私”->“位置服务”中列出
【发布时间】:2014-09-02 00:00:18
【问题描述】:

我有两个非常相似的不同应用程序。

当我在 iOS8 beta 5 上安装它们时,其中列出了一个 设置 -> 隐私 -> 定位服务 另一个未在此处列出。

两者都没有故意使用定位服务,所以我想将其关闭。

这两个应用都是使用 XCode 5.x 构建的。

这是我为解决这个问题所做的工作:

  1. 我已经仔细比较了可以工作和不工作的应用程序之间的 xcode 配置,以寻找差异。
  2. 我也在项目文件夹中使用了 grep "Location" 来查找工作应用程序和非工作应用程序之间的配置差异。
  3. 我解压了 .ipa 文件并查找 .plist 文件中的差异

我确信我所缺少的一切事后都会很明显,但现在我被难住了。

问题是: 在 iOS8 中,一个应用程序如何在Settings -> Privacy -> Location Services 中列出?

“使用位置服务”的明显答案不会有帮助,我需要比这更深入的答案才有帮助。

这很重要,因为定位服务中列出的应用程序在启动时也会收到此警告消息:

Allow "app-name" to access your location even when you are not using the app?

这是一个非常不祥的警告,尤其是当应用不向用户提供任何基于位置的服务时。

编辑:我已经安装了 iOS 8 GM Seed,但仍然出现此问题。

编辑:我其实有好几个应用,下面是使用的phonegap版本以及是否显示警告信息的细分:

  • 3.3.0 - 询问位置
  • 2.7.0 - 工作
  • 2.7.0 - 询问位置
  • 3.3.0-rc1 - 有效
  • 3.3.0 - 工作
  • 3.3.3-rc1 - 询问位置
  • 3.3.0 - 工作
  • 3.3.0 - 有效。

【问题讨论】:

标签: cordova ios8


【解决方案1】:

发生这种情况是因为您的应用程序或您的应用程序使用的库使用了定位服务。例如,如果您使用地图,SDK 可能会将用户当前位置指示在地图上的位置。其他第三方工具如 Flurry SDK 等可能会使用分析数据的用户位置(通常您必须允许这样做)。请检查(和/或)列出您正在使用的所有第三方 SDK。如果您将应用提交到 App Store,它可能会被拒绝。

另外三个建议:

  1. 检查您可能有位置的应用程序的 info.plist 服务或 gps 作为硬件要求。
  2. 您已链接到 CoreLocation 框架
  3. info.plist 包含作为 BackgroundMode 的位置

最后,您可以尝试调出位置管理器对象以查看应用访问它的位置。像这样:Swizzle Locations

【讨论】:

  • 对不起@Brett,但我将否决这个答案。您似乎没有发现这些应用程序并非有意使用定位服务。如果我使用的是 Map SDK,那将是非常明显的位置服务使用。我试图通过以下声明来帮助好心的人提供此类答案:““使用位置服务”的明显答案将无济于事,我需要比这更深入的答案才能有所帮助。我只使用 phonegap 并列出了具体版本。这些应用程序都在应用商店中。修改你的答案,我会投票给你。
  • @MichaelPotter,也许你可以通过问一个不同的问题来解决这个问题。应用程序出现在位置服务中......当它们向操作系统指示他们使用位置服务时(这是您不想要的答案。:-) 如果没有您正在使用的 SDK 的列表和/或代码,它是很难指出您的应用程序正在做什么,因为它可能是很多事情。我已经修改了我的答案以获得更多建议。
  • 我已否决您的回答,并将在接下来的几个小时内查看您的建议。这是有帮助的答案类型;你可能会赢得赏金。
  • 我给@Brett 赏金,但没有确认他的回答。他的回答有一些很好的提示,并且符合原始问题的精神,所以他赢得了它。我没有尝试确认他的回答,因为现在我可以提交使用 Xcode 6 构建的应用程序,我们将这样做来解决问题。
猜你喜欢
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 2012-06-19
  • 1970-01-01
  • 2015-10-04
  • 2016-08-12
  • 2012-05-06
相关资源
最近更新 更多