HealthKit in React Native + Expo Dev Client: no authorization prompt (and no data)

Hi everyone,

I’m building a health app with React Native using Expo Dev Client on a real iPhone. I need to read Apple Health (HealthKit) data, but the authorization sheet never appears—so the app never gets permissions and all queries return nothing.

What I’ve already done

  • Enabled HealthKit capability for the iOS target.
  • Added NSHealthShareUsageDescription and NSHealthUpdateUsageDescription to Info.plist.
  • Using a custom dev build (not Expo Go).
  • Tested fresh installs (deleted the app), rebooted device, and checked Settings → Privacy & Security → Health/Motion & Fitness.

Tried both packages: react-native-health and @kingstinct/react-native-healthkit. Same behavior: no permission dialog at first use.

Ask

Is there a known reason why the HealthKit permission sheet would not show on modern iOS when called from a React Native bridge (with Expo Dev Client)? Are there any extra entitlements, signing, or config-plugin steps required beyond HealthKit capability + Info.plist? If you’re successfully fetching Apple Health data from React Native on recent iOS, could you share the exact steps that made the permission sheet appear and data flow (Expo config/plugin used, Xcode capability setup, profile/team settings, build type, bundle ID nuances, any Health app reset steps, etc.)? This would help me and others hitting the same “authorized call but no prompt/no data” issue. Thank you!

Folks who know React Native + Expo Dev may weigh in, but you can determine if the issue is on that side by following Setting up HealthKit and Authorizing access to health data to create an Xcode project and trying with it. Also, the discussion in this thread may help.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

HealthKit in React Native + Expo Dev Client: no authorization prompt (and no data)
 
 
Q