繁体   English   中英

针对iOS 11设备使用Xcode 9构建的应用程序的间歇性和晚期重要位置更改事件

[英]Intermittent and late Significant Location change events on apps built with Xcode 9 for iOS 11 devices

我已经对此提出了雷达,但我想知道是否有其他人有这个问题。

似乎重要的位置更改(SLC)在iOS 11上表现不同,但仅限于在Xcode 9上构建的应用程序。看起来好像SLC表现得更糟,并且与iOS 10相比延迟了。我可以支持这个使用来自多个设备的数据和易于重复的实验。 我想尝试保持这篇文章的简短,所以如果有人想要更多关于如何更详细地重现这个问题的数据或说明,我很高兴能够分享我是如何完成这一切的。

使用这个简约的SLC缓存应用程序: https//github.com/Root-App/root-ios-slc-tester我能够从iOS 10和iOS 11设备获取数据。

问题仅存在于iOS 11设备上,其中接收SLC的应用程序已构建在Xcode 9上。只是为了确保这一点清楚:

  • 在Xcode 9上构建的iOS 10设备+应用程序:像以前一样工作
  • 在Xcode 8上构建的iOS 10设备+应用程序:像以前一样工作
  • 在Xcode 8上构建的iOS 11设备+应用程序:像以前一样工作
  • 在Xcode 9上构建的iOS 11设备+应用程序存在问题

大多数时候(但并非总是如此),iOS 11 + Xcode 9版本上的SLC发生的时间明显晚于控制(iOS 10)设备上的SLC。

比较来自上述应用程序的日志文件,iOS 10设备在iOS 11设备之前超过2分钟获得SLC。 有时10-15分钟前!

样本删节数据,其中每一行是不同的行程,并表示第一次记录该行程的SLC(以HH:mm:ss):

 iOS 10  |  iOS 11
-------------------
20:41:08 | 20:44:45
07:21:25 | 07:27:48
18:54:57 | 19:07:36
07:48:17 | 07:51:03
17:29:44 | 17:38:18

iOS 10与iOS 11中存在SLC之间的差距似乎有所不同。

是否有其他人看到这种降级的SLC行为?

如果你只使用“使用时”位置访问,据我所知,没有任何改变。

如果你使用“始终”访问权限,并且没有像你应该提供的那样“提供使用时”。

以下信息可能对iOS 11有用,

正如Brad Jensen在我提到的WWDC演讲中解释的那样,Apple决定强迫用户给应用程序“始终”位置访问是一种糟糕的用户体验:

现在,我们认为许多开发人员选择要求始终授权的第二个原因是他们只是试图为用户提供最佳体验(...)但这对于不希望用户的用户来说会带来非常糟糕的用户体验。授予应用程序始终授权。 他们被迫在批准应用程序Always之间做出选择,这比他们在这个例子中所希望的要多,或者授予它Never,这意味着他们无法从应用程序的任何基于位置的功能中受益。 他们的最终选择是授予它Always,然后在使用该应用程序完成后撤销该授权。 在任何情况下,用户都没有很好的时间使用这个应用程序。

有关详细信息,您可以从下面的博客中了解它可能更有用,

https://mackuba.eu/2017/07/13/changes-to-location-tracking-in-ios-11/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM