HealthKit without usage descriptions, and capability gaps

The HealthKit entitlement without a health usage description in Info.plist crashes the app when it requests authorization, the same way a missing camera purpose string does. The rest of your capabilities are inventoried so you can check each one is registered for your App ID and demonstrable to a reviewer.

Can block submissionentitlements.capability-inventory

Why it matters

HealthKit needs NSHealthShareUsageDescription to read health data, NSHealthUpdateUsageDescription to write it, or both. iOS terminates the app when it requests health authorization without them, which a reviewer reaches as soon as they open the feature.

The wider problem this rule addresses is that capabilities are declared in the project and granted by the App ID, and the two drift. A capability in your entitlements that is not enabled on the App ID fails at signing or at runtime depending on which one it is.

Sign in with Apple, iCloud, App Groups and Keychain sharing are inventoried rather than judged, because whether each is correct depends on your account configuration, which a project file cannot see.

How to fix it

  1. If HealthKit is enabled, add the health usage description keys that match what the app does, read, write or both.
  2. For each capability listed, confirm it is enabled for your App ID in the developer portal.
  3. Confirm the distribution provisioning profile includes them, since a profile generated before a capability was added will not.
  4. Be ready to demonstrate each capability to App Review, which is what the reviewer will ask for on the ones that are not visible in the interface.

The guidelines behind it

Read from Apple’s App Review Guidelines as last updated October 16, 2026.

Worth knowing

As with every entitlement finding: the .entitlements file is an input to code signing, not the final signed set.

What ReviewAhead checks

Declared capabilities. Sensitive capabilities are listed so they can be checked against the signed build.

  • HealthKit entitlement present without either health usage description.
  • Inventories Sign in with Apple, iCloud, App Groups and Keychain sharing, with a note on what each needs.

Apple’s own documentation for this requirement: developer.apple.com. Where this page and Apple disagree, Apple is right and this page is a bug.

Scan my projectScan your Xcode project and see whether this one is a problem in your app, free.

All 38 App Store readiness checks