plist localization broken since App Store Connect API 2.1 update

In the past few hours (coinciding with the App Store Connect API 2.1 update) plist localization has stopped working on our builds submitted via the API.

The API complains of the following error:

Invalid value for purpose string. The value "NSHealthShareUsageDescription" for Info.plist NSHealthShareUsageDescription is not allowed in "[snipped].app". Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSHealthShareUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. With error code STATE_ERROR.VALIDATION_ERROR.90738

However this has been working without issue in the past, and our plist entries, which we have manually validated, and the plist localization we have set up have not changed and are valid per the documentation.

The builds were generated with Xcode 13.4.1 and were being accepted by the App Store Connect API without issue prior until about 7 hours ago.

Is anyone else seeing this?

Post not yet marked as solved Up vote post of james144 Down vote post of james144
1.3k views

Replies

I found a workaround for this issue.

We were using NSHealthShareUsageDescription as the key for the localized string in our plist, i.e.

In our plist we had "NSHealthShareUsageDescription" => "NSHealthShareUsageDescription"

And then in our localized strings we had "NSHealthShareUsageDescription" => "Some localized string"

Swapping the key of the localized string over the full EN localized string has fixed the issue.

I.e. our plist now has "NSHealthShareUsageDescription" => "Some localized string"

And our localized strings has "Some localized string" => "Some localized string" (localized)

  • For the record, we still believe there has been a behaviour change in the App Store Connect API 1.2 update (or around the same time) that has resulted in a change of behaviour with regard to the treatment of plist localization for the NSHealth** plist attributes.

Add a Comment

Hey James,

Could you please clarify your workaround? I am in the same situation as you where a couple weeks ago i also started receiving emails complaining that "NSLocationAlwaysAndWhenInUseUsageDescription" was not allowed.

so, you are essentially changing the name of your localized string?