In my viewDidLoad
method I have
locationManager = [[CLLocationManager alloc]init]; // initializing locationManager locationManager.delegate = self; // we set the delegate of locationManager to self. locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [locationManager requestWhenInUseAuthorization]; }
And the request is called, but the user is not prompted? Why?
You probably need to update your plist
file. Here's a tutorial how to do it, quick & dirty:
You need to do is to add one of the following keys to your Info.plist file:
NSLocationWhenInUseUsageDescription NSLocationAlwaysUsageDescription
You also need to request authorization for the corresponding location method, WhenInUse
or Background
. Use one of these calls:
[self.locationManager requestWhenInUseAuthorization] [self.locationManager requestAlwaysAuthorization]
There's also a post that I found helpful:
Location Services not working in iOS 8
This answer details how to update your plist
file:
Add one of the following lines to your info.plist
<key>NSLocationWhenInUseUsageDescription</key> <string>The spirit of stack overflow is coders helping coders</string> <key>NSLocationAlwaysUsageDescription</key> <string>I have learned more on stack overflow than anything else</string>
You'll probably want to customize and spell-check the strings of the dictionary entry that goes in the info.plist file before shipping the code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With