I have filed a radar on this already but I wanted to see if anyone else had this issue.
It appears as though significant location changes (SLCs) are behaving differently on iOS 11 but only on apps that are built on Xcode 9. It appears as though SLCs are performing much worse and are delayed when compared to iOS 10. I can back this up with data from multiple devices and an easily reproducible experiment. I wanted to try and keep this post short so if anyone wants more data or instructions on how to reproduce the issue in more detail, I'm happy to share exactly how I did all of this.
Using this minimialistic SLC caching app: https://github.com/Root-App/root-ios-slc-testerI was able to get data from iOS 10 and iOS 11 devices.
The problem exists ONLY on iOS 11 devices where the app receiving SLCs must have been built on Xcode 9. Just to make sure this is clear:
- iOS 10 device + app built on Xcode 9: works like before
- iOS 10 device + app built on Xcode 8: works like before
- iOS 11 device + app built on Xcode 8: works like before
- iOS 11 device + app built on Xcode 9: issue exists
A majority of the time (but not always), SLCs on the iOS 11 + Xcode 9 build happen significantly later than SLCs on the control (iOS 10) devices.
Comparing the log files from the above app, the iOS 10 devices get SLCs more than 2 minutes before the iOS 11 devices. Sometimes 10-15 minutes before!
Sample abridged data where each line is a different trip and represents the first time that an SLC was recorded for that trip (in 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
The gaps between when there was an SLC in iOS 10 vs iOS 11 seems unacceptly different.
Is anyone else seeing this degraded SLC behavior?