Description
App is not asking for user permission to access location and getting state notDetermined
Working perfectly till iOS-10
var locationManager : CLLocationManager!
func getLocationDetails()
{
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
{
if status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse
{
locationManager.startUpdatingLocation()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
}
Plist screenshot
Background Modes
I have gone through the Apple documentation and found the solution for this question.
Apple has changed few guidelines to get user location.
Here is the Video Link: Apple- What's New in Location Technologies
Full code for location access in Swift & Objective-C both
Solution:
Now we need to add three Authentication Key into Plist:
- NSLocationAlwaysAndWhenInUseUsageDescription
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
Plist will look like :
And Authentication message screen will look like:
Full code for location access
Please ask for the other permission also "When ever in use permission" and add both permission on the plist.
I've added both Keys in the info.plist
file in order to ask for permissions, however after deleting the app and opened it again the simulator didn't display the alert to permit the user select one option.
I could make the alert appear again after deleting the app, then opening the settings
application and finally installing again the app.
Hope it could help somebody.
Please change requestAlwaysAuthorization
to whenInUseAuthentication
. Then it will start working. I think this might be due to GM Seed/Beta version of xcode. In stable version we might not have this issue.