App Store Connect Operation Error: ITMS-90164 [] for key com.apple.developer.healthkit.access

I wouldn't change our code too much, this appears to be something on Apple's end that hopefully they'll fix soon. https://developer.apple.com/system-status/


Remove the following line in the .entitlements file

<key>com.apple.developer.healthkit.access</key>
<array/>

This not work :(. Binary will be rejected ITMS-90000: This bundle is invalid - $message.

What work for me: First, when you enable your app’s HealthKit capabilities: you must also select the Clinical Health Records checkbox! enter image description here

Next, you must provide a Health Records Usage string in your app’s Info.plist file. enter image description here


Update: It looks like Apple fixed this issue yesterday (January 21, 2021). I don't see the error anymore.


I have the same issue. If I read that error correctly it fails because the value for com.apple.developer.healthkit.access is different in the App Store provisioning profile and in the entitlements file.

And it's indeed different.

When I enable HealthKit capability from Xcode, it adds this to the entitlements file:

    <key>com.apple.developer.healthkit</key>
    <true/>
    <key>com.apple.developer.healthkit.access</key>
    <array/>

When I create an App Store provisioning profile from https://developer.apple.com/account/resources/profiles/list, then download it and open it with a text editor I see this:

                <key>com.apple.developer.healthkit</key>
        <true/>
                <key>com.apple.developer.healthkit.access</key>
        <array>
                <string>health-records</string>
        </array>

I'm not sure if it's possible to set what the provisioning profile sets for com.apple.developer.healthkit.access, so it looks like the only way to make them have the same value is to enable "Clinical Health Records" HealthKit capability from Xcode, so that it adds it to the entitlements file too. This doesn't sound like the right solution, since it forces you to enable "Clinical Health Records" even if you don't use it. It looks to me like this is a recent change on Apple's side that changed how the value from the entitlement file is compared to the one in the provisioning profile, as it didn't happen before and I didn't change neither the entitlements file nor the provisioning profile since the last successful app release.

Removing com.apple.developer.healthkit.access key from entitlements file is, in my opinion, also not a correct solution since the HealthKit capability is removed in "Signing & Capabilities" UI from Xcode when you do that. And also I see here some people reported that the app does not pass the App Store review when you do that. Also it's Xcode that adds that to entitlements when HealthKit capability is added, why would we need to remove that manually?