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!
Health & Fitness
RSS for tagExplore the technical aspects of health and fitness features, including sensor data acquisition, health data processing, and integration with the HealthKit framework.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I am working on a cycling fitness app and I want to read the cycling power recorded using my Garmin edge from the Garmin Connect App. Currently the data is not transferred to the Health/Fitness Apps. Ideally it would be good to be able to query the power samples similar to the heart rate samples, but even the average power would suffice, as I could then calculate the Kilojoules.
I am using this below code since WatchOS 10 to set the user steps observer and get the callback of steps whenever changes.
This is still working perfectly fine till watchOS 11 but when i updated to watchOS 26.1, I am not getting the callback of steps, like the observer is not working at all. I should get a callback inside query block whenever user take steps, but it is not working in watchOS 26.1.
func setupStepCountObserver(completion: @escaping (Double, Double) -> Void) {
let stepCountType = HKObjectType.quantityType(forIdentifier: .stepCount)!
let query = HKObserverQuery(sampleType: stepCountType, predicate: nil) { [weak self] _, completionHandler, error in
if let error = error {
print("Error setting up observer query: \(error.localizedDescription)")
return
}
// Fetch the latest step count data
self?.getLast20SecTodaysSteps(completion: completion)
// Call the completion handler to let HealthKit know you have processed the update
completionHandler()
}
// Execute the query
healthStore.execute(query)
// Enable background delivery of updates
healthStore.enableBackgroundDelivery(for: stepCountType, frequency: .immediate) { success, error in
if let error = error {
print("Error enabling background delivery steps: \(error.localizedDescription)")
} else if success {
print("Background delivery enabled for steps.")
}
}
}
When calling beginCollection on HKLiveWorkoutBuilder the function never completes and gets stuck. (On the second workout session, the first session works flawlessly)
To reproduce:
Run the MirroringWorkoutsSample on WatchOS https://developer.apple.com/documentation/healthkit/building-a-multidevice-workout-app.
Start the workout and then end the workouts it should work perfectly fine the first time.
Start the workout and end again, and you should see the problem, the workout doesn’t end.
The second time i start a workout session, the beginCollection instance method on HKLiveWorkoutBuilder freezes.
To recreate run the Apple Sample Project Building a multidevice workout app. It looks like a bug with the HealthKit SDK and not the code but i could be wrong. The only workaround i found was erasing the simulator and reinstalling the app.
Was able to use ai to help code my idea for a haptic heart rate monitor using watch se‘s ppg and accelerometer. Now if I could just get it on the App Store…
I am developing a running training app that coaches can use to create interval workout plans.
I can use HKWorkout to get information about Splits similar to that in Fitness app, but I can't get information about Intervals.
My idea is to show interval details when users view their completed custom interval workout plans.
Can I use Healthkit (or another feasible method) to get the actual distance or time of exercise in intervals workout ?
(I know the workoutPlan property, but it doesn't reflect the segments of a real interval training workout.)
Any insights or suggestions would be greatly appreciated!
Thanks in advance!
Topic:
App & System Services
SubTopic:
Health & Fitness
Tags:
Health and Fitness
HealthKit
WorkoutKit
Hi!
I have over 800 days strike in closing my move circle. However oerfect month badge is not popping up for November, we have now mid of Dec and still no update.
I updated iOS to 26, did multiple resets and hard resets and still no badge. I checked many forums and post but any of given tips is working in my case.
i know it sounds funny, but it’s frustrating that I’m not getting this little gold medal to keep me motivated 😅
does anyone know how to deal with it? Is it common issue?
I don't understand why elevation data is not stored in the sample using a standard length unit. Why is it stored in HKQuantityTypeIdentifier.flightsClimbed (which is 10 feet)?
Surely it is not a memory usage issue.
Treadmill GATT provides elevation in meters.
Using HKMetadataKeyElevationAscended for the total elevation gain throws away a lot of data.
Why is there no support for weighted vest or backpack? Changing body weight is not the same and provides incorrect energy. Users want to compare workouts with different weights. I don't see any metadata key for carried weight.
Topic:
App & System Services
SubTopic:
Health & Fitness
Hey everyone,
I was wondering if it is possible to access the raw data of the gyroscope and accelerometer of the Airpod 3 pro?
I found different answers online - some say I can only get some processed data, but in the Core Motion documentation it reads as it might be possible to get raw data.
Any clear answer for this one?
Thanks!
Hello everyone,
I’m currently enrolling as an Organization from Albania and I’ve been stuck on the "Enrolling" status for 8 business days now.
I have my D-U-N-S number sorted and everything was submitted. I sent an email last week to the support but I haven't heard back yet. I’ve already sent another support message 2 days ago but no reply so far.
I’m curious to hear from others who have enrolled recently (especially in 2026):
How long did your organization verification take?
Did you receive a verification phone call, or was it just approved via email?
For those in the Balkans/Europe, did you have to provide extra local business registry documents (like the QKB extract) manually?
I’m trying to time my launch with my Google Play release, so I’m a bit anxious about the "black hole" of waiting. Any experiences or "nudge" tips would be greatly appreciated!
Thanks!
Topic:
App & System Services
SubTopic:
Health & Fitness
Tags:
App Store
App Store Connect
Developer Program
1/ Issue Summary
In our application, we use HKObserverQuery together with:HKHealthStore.enableBackgroundDelivery(for:frequency: .immediate)
to enable HealthKit Background Delivery, allowing the system to wake our App Extension in the background to process health data updates.
Under the same app build, identical HealthKit permission configuration, and the same watchOS version, we have observed significant differences in background delivery frequency across different devices.
Specifically, on certain devices (e.g. Apple Watch Series 10, watchOS 26.2.1), the background delivery frequency is significantly reduced, behaving as if it is capped at approximately once per hour. On other control devices, under the same configuration, background delivery is triggered much more frequently and consistently, at approximately every 8–16 minutes.
This behavior is consistently reproducible on the affected devices.
**We would like to understand whether there are any officially recommended implementation patterns, best practices, or device-/system-level considerations when using HKObserverQuery and Background Delivery, in order to achieve more consistent and predictable background update behavior across different devices running the same system version. **
2/ Detailed Device Comparison
We conducted internal comparison testing across multiple devices with the following results:
Device A (Affected / Abnormal)
Model: Apple Watch Series 10 (46mm)
OS: watchOS 26.2.1
Serial (partial): C*HY
Background Delivery Frequency: ~ once every 60 minutes (significantly lower than expected)
Device B (Normal)
Model: Apple Watch Series 10 (42mm)
OS: watchOS 26.2.1
Serial (partial): G*4R
Background Delivery Frequency: ~ every 8–16 minutes
Device C (Normal)
Model: Apple Watch Series 8 (41mm)
OS: watchOS 26.3
Serial (partial): C*J6
Background Delivery Frequency: ~ every 8–16 minutes
Device D (Normal)
Model: Apple Watch Series 5 (41mm)
OS: watchOS 10.6.1
Serial (partial): G*TQ
Background Delivery Frequency: ~ every 8–16 minutes
All devices share the following conditions:
HealthKit permissions: Full read/write permissions granted
Background App Refresh: Enabled
System state: Low Power Mode, Do Not Disturb, and all Focus modes disabled
App build: Identical app build installed on all devices
HealthKit configuration: Same data types and same frequency parameter used in enableBackgroundDelivery
Implementation: Identical HKObserverQuery implementation logic
3/ Abnormal Behavior Observed
On the affected device(s), we observe that:
HealthKit background delivery appears to be heavily coalesced or throttled
The system rarely attempts to wake the App Extension
Behavior is clearly inconsistent with other devices using the same configuration
The behavior does not match our expectations for HealthKit Background Delivery with .immediate frequency
4/ Troubleshooting Already Performed
We have already attempted the following on the affected device(s):
Restarted both Apple Watch and paired iPhone
Re-paired the Apple Watch
Uninstalled and reinstalled the app
Revoked and re-granted HealthKit permissions
Confirmed that Low Power Mode, Do Not Disturb, and Focus modes are all disabled
The issue remains consistently reproducible.
5/ Assistance Requested
We would appreciate guidance on:
Whether there are any officially recommended implementation patterns, tuning options, or best practices for using HKObserverQuery and HealthKit Background Delivery
Whether there are any known device-level or system-level factors that may cause significantly different background delivery behavior on different devices running the same watchOS version
How to best achieve consistent and predictable background update delivery behavior across devices for apps that rely on this mechanism
6/ Additional Information
We can provide sysdiagnose logs from both affected and unaffected devices for comparison
We can also provide a minimal reproducible sample project if needed
Area
Health & Fitness → HealthKit → Health Records (FHIR Ingestion)
Summary
On devices running iOS 26.2, FHIR Clinical Records successfully connect and validate, but no data (Procedure, DiagnosticReport, Observation, etc.) is ingested into the Health app.
The same FHIR server and patient connection works correctly on iOS 18.1, where all data syncs and displays as expected.
On iOS 26.2:
FHIR validation passes in Health Records
“Last Download Date” updates
Patient data is visible in connection
No clinical data appears in Health app
No apps are listed under Privacy → Health
Device shows “No Data Found”
Crash logs show healthappd terminating during ingestion
This appears to be a regression in the HealthPlatform / HealthKit ingestion pipeline in iOS 26.
Steps to Reproduce
Use an iPhone running iOS 26.2
Open Health app
Add Health Record from FHIR server
Authenticate successfully
Confirm FHIR validation screen shows all resources as “Passed”
Wait for sync to complete
Expected Result
Procedures, DiagnosticReports, Observations, etc. should appear in Health app
Data should be written to HealthKit
Apps should appear under Settings → Privacy & Security → Health
Actual Result
No data appears in Health app
No Procedures, DiagnosticReports, Observations, etc.
Apps section under Health permissions shows “None”
Device shows “No Data Found”
Last Download Date updates correctly
Validation Results (All Passed)
The following FHIR resources show “Passed” in Health validation:
AllergyIntolerance
Condition
DiagnosticReport
DiagnosticReport-ClinicalNotes-Cardiology
DiagnosticReport-ClinicalNotes-Pathology
DiagnosticReport-ClinicalNotes-Radiology
DocumentReference-ClinicalNotes
Immunization
MedicationRequest
Observation-Labs
Observation-VitalSigns
Patient
Procedure
Server responses are correct and return expected data when tested via Postman.
Crash Log Details
Crash occurs in process:
healthappd
Frameworks involved:
HealthPlatform.framework
HealthKit
Combine
Exception:
EXC_BAD_ACCESS
SIGKILL
EXC_ARM_PAC_FAIL
Thread:
com.apple.HealthKit.HKHealthStoreImplementation.client
Stack trace includes:
objc_msgSend
HKSharedSummary
DictionaryStorage.deinit
swift_release_dealloc
objc_destructInstance
Publishers.MergeMany
Future.init
This indicates the ingestion pipeline crashes before data is written to HealthKit.
Comparison Across OS Versions
iOS Version
Result
iOS 18.1
Data syncs correctly
iOS 26.2
No data syncs, healthappd crash
Same:
Same FHIR server
Same patient
Same authentication
Same device model
Same iCloud settings
Additional Notes
OAuth flow succeeds
FHIR validation passes
Server responses are correct
Postman returns correct JSON
No TLS errors
No permission errors
Issue only occurs on iOS 26+
This appears to be a regression in the FHIR ingestion engine introduced after iOS 18.1.
Topic:
App & System Services
SubTopic:
Health & Fitness
Area
Health & Fitness → HealthKit → Health Records (FHIR Ingestion)
Summary
On devices running iOS 26.2, FHIR Clinical Records successfully connect and validate, but no data (Procedure, DiagnosticReport, Observation, etc.) is ingested into the Health app.
The same FHIR server and patient connection works correctly on iOS 18.1, where all data syncs and displays as expected.
On iOS 26.2:
FHIR validation passes in Health Records
“Last Download Date” updates
Patient data is visible in connection
No clinical data appears in Health app
No apps are listed under Privacy → Health
Device shows “No Data Found”
Crash logs show healthappd terminating during ingestion
This appears to be a regression in the HealthPlatform / HealthKit ingestion pipeline in iOS 26.
Steps to Reproduce
Use an iPhone running iOS 26.2
Open Health app
Add Health Record from FHIR server
Authenticate successfully
Confirm FHIR validation screen shows all resources as “Passed”
Wait for sync to complete
Expected Result
Procedures, DiagnosticReports, Observations, etc. should appear in Health app
Data should be written to HealthKit
Apps should appear under Settings → Privacy & Security → Health
Actual Result
No data appears in Health app
No Procedures, DiagnosticReports, Observations, etc.
Apps section under Health permissions shows “None”
Device shows “No Data Found”
Last Download Date updates correctly
Validation Results (All Passed)
The following FHIR resources show “Passed” in Health validation:
AllergyIntolerance
Condition
DiagnosticReport
DiagnosticReport-ClinicalNotes-Cardiology
DiagnosticReport-ClinicalNotes-Pathology
DiagnosticReport-ClinicalNotes-Radiology
DocumentReference-ClinicalNotes
Immunization
MedicationRequest
Observation-Labs
Observation-VitalSigns
Patient
Procedure
Server responses are correct and return expected data when tested via Postman.
Crash Log Details
Crash occurs in process:
healthappd
Frameworks involved:
HealthPlatform.framework
HealthKit
Combine
Exception:
EXC_BAD_ACCESS
SIGKILL
EXC_ARM_PAC_FAIL
Thread:
com.apple.HealthKit.HKHealthStoreImplementation.client
Stack trace includes:
objc_msgSend
HKSharedSummary
DictionaryStorage.deinit
swift_release_dealloc
objc_destructInstance
Publishers.MergeMany
Future.init
This indicates the ingestion pipeline crashes before data is written to HealthKit.
Comparison Across OS Versions
iOS Version
Result
iOS 18.1
Data syncs correctly
iOS 26.2
No data syncs, healthappd crash
Same:
Same FHIR server
Same patient
Same authentication
Same device model
Same iCloud settings
Additional Notes
OAuth flow succeeds
FHIR validation passes
Server responses are correct
Postman returns correct JSON
No TLS errors
No permission errors
Issue only occurs on iOS 26+
This appears to be a regression in the FHIR ingestion engine introduced after iOS 18.1.
Topic:
App & System Services
SubTopic:
Health & Fitness