Receiving Always authorization will also give you When In Use but not vice-versa.
If your app can function with just foreground location but you have some parts that need Always (e.g.
So the first thing you need to do is to add one or both of the following keys to your Info.plist file: Both of these keys take a string which is a description of why you need location services.
You can enter a string like “Location is required to find out where you are” which, as in i OS 7, can be localized in the Info Plist.strings file.
Here’s a description of all statuses: Note that the pre-i OS 8 status “Authorized” is the same code as the i OS 8 status “Always”.
This means that if an app has received location permission before the user updates to i OS 8, the app will automatically receive Always (background location) authorization.
In i OS 8 you need to do two extra things to get location working: Add a key to your Info.plist and request authorization from the location manager asking it to start.
There are two Info.plist keys for the new location authorization. If neither of the keys are there, you can call but the location manager won’t actually start.
You will get no error or warning, you won’t ever get a location update and you won’t understand why.
Your app will never even ask for permission to use location.
optional geofencing functionality) you would add both keys to the plist and start by requesting When In Use, then later asking for Always authorization.
Unfortunately, this isn’t as simple as just calling All these location types have the power to wake the app from suspended or terminated when a location event occurs.
If the app hasn’t been built to work with the i OS 8 APIs, on first run (on i OS 8) it will ask for Always authorization by default with the message: The system may ask a second question at some later stage (saying that it’s been using your location in the background) if the app does use location in the background.