iOS Version Notes

iOS 8 - With the release of iOS 8 additional changes must be made to your application for the full functionality of GeoMoby to be unlocked. In your info.plist file add the following key-value pair:

Key: NSLocationAlwaysUsageDescription
Value: (String) This app requires your permission to run location services in the background.

iOS 11 - With the release of iOS 11 additional changes must be made to your application for the full functionality of GeoMoby to be unlocked. In your info.plist file add the following key-value pairs:

Key: NSLocationAlwaysAndWhenInUseUsageDescription
Value: (String) This app requires your permission to run location services when the app is not in use.

Key: NSLocationWhenInUseUsageDescription
Value: (String) This app requires your permission to run location services when the app is in use.

iOS 11 - As of 30 October 2017 there is a known bug in iOS 11 which prevents apps from waking up after a significant location change. We will continue to monitor the resolution of this issue and provide updates.

iOS 12 - Issue reported for iOS 11 with significant location change seems to have been solved now.

iOS 13 - The GeoMoby SDK has been updated in order to be compatible with the new iOS13 constraints with background geolocation features. Be aware of the breaking changes for remote notifications when you are implementing the geosync feature.

iOS 14 - Apple introduced different accuracy levels that are fully controlled by the users. Your would need to adapt your app for new acuracy authorization values as background monitoring (beacon and region) will be disabled for under .reducedAccuracy. See WWDC2020 New in Location

What’s new in iOS 14 is the user’s ability to toggle precise location on and off. The precise setting is enabled by default, which means the app will get the user’s fine location. If the user disables this, then the app will only get the user’s approximate location. In our tests, the approximate location may return location coordinates for a user up to 4-5km away  and locations could be up to 20 minutes old!

If your app initially requests When In Use location authorization then later requests Always authorization, iOS will immediately show the authorisation upgrade dialog ([Keep using When in Use] / [Change to Always allow]).

Our recommendations
  • Include a usage description clearly explaining why you need the user’s location.

  • Don’t request the user’s location until you need it.

  • If you require precise location, but the user has only granted approximate location, use a one-time temporary precise location request.

  • If you require Always Allow + Precise location settings for optimum User Experience, but the user hasn’t granted this, you then need to increase user acceptance: include a custom alert or screen informing the user the benefit of allowing those permissions and provide instructions on how they can change this in iOS Settings, with a button that redirect them.

  • Iif the user chooses Don’t Allow, you won’t be able to request this permission again.