We've built an iOS application using Apache Cordova that grabs the user's location every X interval seconds. Everything worked fine on our testing devices, so we shipped it over to the client for UAT, and they started reporting extremely erratic and inaccurate location data coming back.
We suspected user error was at play, so we did some onsite testing using both our device (iPad 4th Gen, wifi+cellular) and the client's device (iPad Air 2, wifi+cellular), and we found that ours was still performing as expected, but their device exhibited a couple of odd behaviors:
- The same location would be repeated multiple times, creating the illusion that the user had not moved in as much as 10 minutes. On examination, the latitude and longitude reported are identical to the last decimal point, so it's as if the same location is being spoofed over and over again.
- When the location did update, it exhibited an unusually high level of inaccuracy. In some cases, the user's location is reported as being a half mile away.
We've tested the following settings without any change in observed behavior:
- Factory reset the client's iPad to base settings.
- Disable Location Services, reboot device, reenable Location Services.
- Test devices with wifi disabled (not just disconnected)
- Test devices in airplane mode
- Bash devices with coconuts
- Double-check that all correct values are in info.plist for geolocation.
The two iPads are running the exact same version of the application on the following stats:
Client iPad
- Network: Verizon Wireless
- iOS Version: 10.1.1 (14B100)
- Carrier: Verizon 26.0
- Modem Firmware: 5.26.00
- Model: MGHC2LL/A
Vendor iPad
- Network: Verizon Wireless
- iOS Version: 10.1.1 (14B100)
- Carrier: Version 26.0
- Model: MD522LL/A
- Modem Firmware: 11.01.00
At this point, we're pretty flummoxed as to what could be causing this kind of deviation between our device and theirs. Any thoughts or suggestions on what might be causing the distinction would be greatly appreciated.