I’m using Crashlytics for internal application tests and noticed one interesting thing. I’m using geolocation in my app and asking for permissions from a user. When customer install app for first time he sees default Apple’s geolocation permissions asking pop up. And everything work fine. But, if user will remove app from phone and install it again... in this case, when I’m asking for permissions, pop up just won’t appear BUT geolocation is WORKING. How? Is this some sort of new feature or iOS issue? I were testing with iOS 11.0.3. I haven’t found anything in documentation, and haven’t seen this behavior in previous iOS versions. Looks like iOS just memorize the app and automatically enables geolocation when I’m asking for user permissions instead of showing pop up. Maybe someone has answer for this?
-
can you check if the setting of the app is still there after removing the app? – Gabriel Goncalves Oct 25 '17 at 21:00
-
just another question, are you using these two keys in the info.plist right? YNSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription (I'm not sure what is the use of location services you have right now) – Gabriel Goncalves Oct 25 '17 at 21:02
-
1) No, an app is not in setting. Not in General, not on General -> Privacy -> Location Services – SIlvester Oct 25 '17 at 21:07
-
2) I have both in my info.plist. And one more - NSLocationAlwaysAndWhenInUseUsageDescription - for iOS 11 – SIlvester Oct 25 '17 at 21:08
-
have you tested other in market apps to check if that happens there too? – Gabriel Goncalves Oct 25 '17 at 22:13
-
No, but I see that not all customers have “feature”. – SIlvester Oct 25 '17 at 22:34
-
did you got solution for it ?, facing same problem – Sheshnath Apr 20 '18 at 06:38
-
I know what is happening in that case.iOS is caching the settings if you installed the app within a day. I have faced the same issue and got the answer from Apple Developer Team. – Ankit Vyas Jul 03 '18 at 10:03
-
@AnkitVyas Thanks a lot for you answer. Will keep this in mind. – SIlvester Jul 05 '18 at 02:04
-
@AnkitVyas I have faced same issue in my app, do you know any apple official link about caching the permissions?. – Ronald Jul 26 '18 at 23:40
-
@Ronald I have got the answer from Apple Support Team Which I have mentioned in the answer. – Ankit Vyas Aug 01 '18 at 14:04
1 Answers
it is possible that there could be a mistake in your code pattern while checking authorization status, the behavior you are seeing is likely due to iOS caching location permissions for apps.
In your code, make sure that you check authorization status (via the authorizationStatus() method), and continue with requesting location authorization when the current status is .notDetermined (kCLAuthorizationStatusNotDetermined)
iOS does cache authorization status for apps as well. If you would like to reset your location permissions for testing purposes, you can set your location privacy settings to the factory default: go to Settings > General > Reset and tap Reset Location & Privacy. When your location and privacy settings are reset, apps will stop using your location until you grant them permission.
Unfortunately there is no developer control over this. Caching of permissions for apps is in an ever evolving stage, where we are trying to find the best user experience, so you may have noticed some changes lately. Also, there will be a grace period where the app uninstall to reinstall time might be making a difference.
If your observations of apps that behave like you expected are recent (on the same version of iOS that you have observed your app behave differently), and the uninstall/reinstall time difference is immediate (like how you probably test your app), please let me know which apps, and I will see if I can dig some information.

- 7,507
- 13
- 56
- 89