ITMS-90683: Missing purpose string in Info.plist - NSLocationAlwaysAndWhenInUseUsageDescription

In our latest two pushes to AppStore Connect, we've been getting the following message, where we hadn't previously:

Dear Developer,

We identified one or more issues with a recent delivery for your app, "XYZ" 1.2.3 (123). Your delivery was successful, but you may wish to correct the following issues in your next delivery: 

ITMS-90683: Missing purpose string in Info.plist - Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “” bundle should contain a NSLocationAlwaysAndWhenInUseUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required.

Oddly though, we've not really made any changes to our codebase that should trigger this. Just wondering if others are seeing the same message? Has the algorithm to detect this changed recently and giving false positives?

We've even uploaded a previous release (that didn't get this warning) to check if we get the warning again, and we are receiving the warning on an app upload that didn't get the warning previously.

Would be good to know if any logic behind this trigger has changed, or is anyone else getting the same message when they are not expecting it?

Searching our Codebase for CoreLocation reveals nothing, is there anything else that may trigger this popup and require this plist key?

Post not yet marked as solved Up vote post of DaveLev Down vote post of DaveLev


Hello, we started seeing this issue also today (suddenly). Not sure yet why this suddenly came up

Hello, same problem here, our last push 3 weeks ago did not raise any problem. We have NSLocationWhenInUseUsageDescription string correctly setup in Info.plist (since our app may ask user to access GPS to find his position on Google Maps) but as far as we can understand that is all we need. NSLocationAlwaysAndWhenInUseUsageDescription should be required only when app accesses location information while running in the background that is not our case. See this page from Apple docs:

Same here :(

We are using Core Location, but only while the app is in use. I added the AlwaysAndWhenInUse key (so I have NSLocationAlwaysAndWhenInUseUsageDescription, NSLocationAlwaysUsageDescription, and NSLocationWhenInUseUsageDescription set), but still get the message on submit.