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 “xyz.app” 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?

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: https://developer.apple.com/documentation/bundleresources/information_property_list/nslocationalwaysandwheninuseusagedescription

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.

Same here :(

We don't actually made any changes on code, but get this message for all our apps after uploading Apps with Xcode 14.2 to AppStore. We have NSLocationWhenInUseUsageDescription in our Info.plist and use CoreLocation by "locationManager.requestWhenInUseAuthorization()". We don't have "Background Mode" with Location Update active and don't use CoreLocation in the background at all. So why we should add additional NSLocationAlwaysAndWhenInUseUsageDescription key if we not really have case for this?

Please help!

Same issue here. Looks like everything is set up as expected, but submission review keeps throwing this warnings.

Collegues, any solitions so far?

I've got the same message here. The only difference is I moved from requestLocation to startUpdatingLocation on CLLocationManager then started getting it when uploading the build.

I don't get why I need NSLocationAlwaysAndWhenInUseUsageDescription if I only request "locationManager.requestWhenInUseAuthorization" and don't have any Background Mode for location update. (Exactly the same case as a_weissbr).

I got same issue :( And I sent a email to Apple Support, Apple Support response "our ability to troubleshoot technical issues is limited".

Does anyone know if this issue will affect the app's approval for release?

I've checked all my code and i do not see any references to requestAlwaysAuthorization method call and hence i do not include NSLocationWhenInUseUsageDescription in info.plist and no "Background Mode" with Location Update active has been selected. But, still i'm getting the same error notification from Apple Review! Anyone has any latest update on this yet? Why is Apple's throwing a wrong error at us? or are we missing something here? Appreciate any help.

You should check you dependencies as well, in my case i faced the same issue while building an eccomerce app, and upon uploading the app to app store connect i got the same message, whilst my app has nothing to do with the use of camera, however im using stripe as a payment processor service, and stripe has a component where you can scan a card to process the payment and therefore the message.

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