Apple will release iOS 11 soon (rumours say mid September 2017). In iOS 11 there is a mandatory breaking change to how the location services dialog works. This affects all the iOS Plot Projects plugin versions for iPhones updated to iOS 11, also when the app still sets the deployment target to iOS 10.
In iOS 11 it’s now required to give a rationale for location services permissions, both for ‘When in use’ and ‘Always’. In iOS 10 and earlier versions, just specifying the rationale for ‘Always’ was enough. After the changes, if the ‘When in use’ text isn’t available, the opt-in will automatically fail.
This means that if your rationale is not set in time, new users installing your app on iOS 11 won’t be able to give permission for location services at all and the Plot Plugin will not work.Main takeaway: you must give a rationale in iOS11 – both for ‘When in use’ and ‘Always’. Just for ‘Always’ is no longer enough.
To fix this you have to specify the rationale for ‘Always’, ‘When in use’ and ‘Always and When in use’. It is possible to specify the same rationale for ‘Always’ and ‘Always and When in use’.
You can set those in your XCode project settings. You can find them in the “Custom iOS Target Properties” under the “Info” tab of your build target.
The value must be a message for the user describing why your app uses the location of the device. For example: “Your location is used to instantly inform you when you are near a location that is interesting to you.”
Ensure that all permission description info keys are defined. The required keys for iOS 10 and iOS 11 are:
|Required key||Description shown in XCode|
|NSLocationAlwaysUsageDescription||Privacy – Location Always Usage Description|
|NSLocationWhenInUseUsageDescription||Privacy – Location When In Use Usage Description|
|NSLocationAlwaysAndWhenInUseUsageDescription*||Privacy – Location Always and When In Use Usage Description|
* this key is added in XCode 9. If you’re using XCode 8, you can add the key yourself.
Users who already have your app, before upgrading their phone to iOS 11, won’t be affected by this change. Updating the Plot Projects library isn’t required and no code has to be updated, therefore this update should have low impact.
If you need further help, don’t hesitate to contact your Customer Success Manager, or contact us through the contact form.
More information can be found on these pages:
Apple Developer Documentation: Request Always Authorization
WWDC 2017: What’s New in Location Technologies
Blog: Getting Your Users Ready to Opt-in for Location Permissions