In general my workout app is reachable from the iPhone when running a workout, even if in the background. However if the watch app restarts (due to crash or being closed via the dock) via handleActiveWorkoutRecovery then it is only reachable when in the foreground, even though a workout is running.
Is this expected / desired behaviour? Is the app given a tighter sandbox (having it's "background privileges" reduced) because of the earlier crash?
This behaviour occasionally happens without a crash (or being closed via the dock) - all of a sudden it is no longer reachable via the iPhone. It feels like the app is being "sandboxed" like in #1 but there is no crash or any other kind of log indicating any issue. Generally the only remedy is to stop the workout and restart the app. My question is - is this expected? Is there some condition that causes the watchOS to sandbox the app? Or is this a Watch Connectivity bug?
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
How to launch companion Watch App without relying on Health Kit?
I need my companion watch to launch automatically in some specific cases. What I'm doing to achieve that is to call "startWatchApp" in HKHealthStore().
This worked flawlessly for well over a year but AppReview is now giving me a hard time about using HealthKit without actually using health related data.
Is there a way to do the same without using HealthKit? Seems silly that this is bundled only with the HealthKit...
If I don't find another solution I will probably be forced to start reading heart rate data and reporting it to the user just so that AppReview will stop saying that I have no reason to use HealthKit... But ideally I'd love to learn about a way to open the companion Watch app without HealthKit and do things the right way...
Hi y’all! This is my first post but I wanted to ask if anyone else has had this happen and fixed it. But I have lost 3 years of fitness and health data upon upgrading to iOS 26 beta 1. I have about 2 gigs of health data in iCloud which I’m praying to Tim is my data lol. But I was wondering if anyone else went through this issue on their test device and yeah.
Topic:
App & System Services
SubTopic:
Health & Fitness
I am very happy to see that HealthKit with OS26 is bringing HKLiveWorkoutDataSource to iOS and iPadOS. I have been replicating a similar type for the last several years for users that only have an iPhone.
I did notice that the data types that the different platform data sources collect automatically is different. That makes sense if you think exclusively about what the device can actually capture. Bluetooth HRM is the only Bluetooth SIG profile that is out-of-the-box supported for Apple Health on iOS and iPadOS (right?). Whereas watchOS 10 got all of the cycling sensors (woohoo!).
It would be great if the types to collect were the same across platforms even if the device couldn't collect the data now, because then in the future when / if new sensor support is added, it will be transparent to developers. Fantastic. Easier life as an indie / third party developer. At least that is the idea.
And yes, I know I can also write Core Bluetooth code and roll my own SIG implementation for the cycling profiles, but Apple already has this code in one os, 'just copy it, it will be easy'. I know that isn't the reality especially against the new ASK framework, but one can hope and dream right? Imagine how many more apps would contribute that data if it was supported out of the box. An alternative, GitHub is a great place for Apple to share their Core Bluetooth implementation of the SIG profiles :). Just another thought.
Here are some feedbacks related to this:
FB17931751 - HealthKit: Add built-in support for cycling sensors on iOS and iPadOS - copy paste the code from watchOS. It will be easy they said (June 2025)
FB12323089 - CoreBluetooth / Health / Bluetooth Settings: Add support for cycling sensors announced in watchOS 10 to iOS and iPadOS 17 (June 2023)
FB14311218 - HealthKit: Expected outdoor cycling to include .cyclingSpeed quantity type as a default HKLiveWorkoutDataSource type to collect (July 2024)
FB14978701 - Bluetooth / HealthKit / Fitness: Expose information about the user specified for Apple Watch paired Cycing Speed Sensor like isConnected and wheelCircumference values (August 2024)
FB18402258 - HealthKit: HKLiveWorkoutDataSource should collect same types on iOS and watchOS even if device cannot produce data today (June 2025)
FB14236080 - Developer Documentation / HealthKit: Update documentation for HKLiveWorkoutDataSource typesToCollect for which sample types are automatically collected by watchOS 10 and 11 (July 2024)
Tangentially related:
FB10281304 - HealthKit: Add HKActivityTypes canoeBikeRun and kayakBikeRun (June 2022)
FB10281349 - HealthKit: Add HKActivityType walkCanoeWalk and walkKayakWalk (June 2022)
FB7807993 - Add HKQuantityTypeIdentifier.paddleDistance for canoeing, kayaking, etc type workouts (June 2020)
FB12508654 - HealthKit / Settings / Bluetooth / Workouts: Cycling sensor support doesn't allow for 'bike selection' in use case of multiple bikes and multiple sensors (borrow a bike to ride together) - production usability issue (July 2023)
Topic:
App & System Services
SubTopic:
Health & Fitness
Tags:
Health and Fitness
HealthKit
Core Bluetooth
AccessorySetupKit
Hi all,
I’m currently running watchOS 26 beta and have been experiencing several sensor-related issues since updating:
• Raise to Wake function doesn’t activate reliably or at all.
• Heart rate sensor fails to measure or shows inconsistent readings.
• Location services are not working properly, affecting workout tracking and apps that rely on GPS.
• Blood oxygen (SpO2) measurements are failing or missing completely.
I’m not sure exactly when these issues began, but they started after installing the latest beta. I’ve tried restarting and resetting but the problems persist. Has anyone else encountered similar issues? Any insights or fixes would be appreciated!
Thanks!
Topic:
App & System Services
SubTopic:
Health & Fitness
Has anyone had success using the HKWorkoutRouteBuilder in conjunction with the new iOS support for HKLiveWorkoutBuilder?
I was running my watchOS code that worked now brought over to iOS and when I call insertRouteData the function never returns. This happens for both the legacy and closure based block patterns.
private var workoutSession: HKWorkoutSession?
private var workoutBuilder: HKLiveWorkoutBuilder?
private var serviceSession: CLServiceSession?
private var workoutRouteBuilder: HKWorkoutRouteBuilder?
private func startRouteBuilder() {
Task { @MainActor in
self.serviceSession = CLServiceSession(authorization: .whenInUse)
self.workoutRouteBuilder = self.workoutBuilder?.seriesBuilder(for: .workoutRoute()) as? HKWorkoutRouteBuilder
self.locationUpdateTask = Task {
do {
for try await update in CLLocationUpdate.liveUpdates(.fitness) {
if let location = update.location {
self.logger.notice(#function, metadata: [
"location": .stringConvertible(location)
])
try await self.workoutRouteBuilder?.insertRouteData([location])
self.logger.notice("Added location")
}
}
} catch {
self.logger.error(#function, metadata: [
"error": .stringConvertible(error.localizedDescription)
])
}
}
}
}
I did also try CLLocationManager API with delegate which is what my current watch code uses (a bit old). Same issue.
Here is what I've found so far:
If the workout session is not running, and if the builder hasn't started collection yet, inserting route data works just fine
I've tried different swift language modes, flipped from main actor to non isolated project settings (Xcode 26)
Modified Apple's sample code and added location route building to that and reproduced the error, modified sample attached to feedback
This issue was identified against Xcode 26 beta 2 and iPhone 16 Pro simulator. Works as expected on my iPhone 13 Pro beta 2.
FB18603581 - HealthKit: HKWorkoutRouteBuilder insert call within CLLocationUpdate task never returns
Topic:
App & System Services
SubTopic:
Health & Fitness
Tags:
Beta
Health and Fitness
HealthKit
WorkoutKit
I'm using following filters to fetch swimming activities from HealthKit.
For some users it fetches all workouts (pool && open water) but for other it skips some open water activities. See screenshot, all those swimming activities are not fetched by following code.
let startDate = Calendar.current.date(byAdding: .month, value: -1, to: Date())!
let endDate = Date()
let swimmingPredicate = HKQuery.predicateForWorkouts(with: .swimming)
let timePredicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate)
let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [swimmingPredicate, timePredicate])
let query = HKSampleQuery(sampleType: .workoutType(),
predicate: predicate,
limit: HKObjectQueryNoLimit,
sortDescriptors: [.init(keyPath: \HKSample.startDate, ascending: false)],
resultsHandler: { [weak self] query, samples, error in
...
Could someone help with ideads what is missing in this case?
Hello,
What is the best practice for sending customized workouts to the Apple Watch.
For example, sending a running workout that entails:
Run 1 mile at 8:00/mile
Walk 2 minutes
Run 2 mile at 7:00/mile ----
Walk 2 minutes ----
Repeat 2x
Run 1 mile at 8:00/mile
Any documentation or sample codes would be amazing. Thank you
Hi,
My app concept features various sections;
a) Personal development section: featuring exercises and guides,
b) Coaches section: featuring coaching sessions offering virtual or in-person sessions related to yoga, fitness, lifestyle etc. (marketplace for coaches).
c) Events section: hosting virtual or in-person events.
Hence which "tax category" should I be selecting?
Thanks,
Gavin
Topic:
App & System Services
SubTopic:
Health & Fitness
If a user selects custom structured workout in the apple watch Workout app and records a run with intervals, how can my third party app pull in that data?
I can obviously get the workout and health stuff like heart rate, but I cannot find how to save the intervals and the relevant data.
The workout events are not seemingly helpful - segments are not obviously related to this.
Is it possible? Is it only possible to have the third party app create a customworkout with metadata and then our third party app parses the interval distance/time based on our own structure?
I think this stuff should be able to be accessed.
I researched Apple HealthKit Background Delivery documentation but I couldn't find any information about does HK background delivery stay persistent after restarting the device? Do I need to enable background delivery for each health data type on a reboot? Can you enlighten me about this topic.
Can’t get the live data from ppg sensor (se os 26.x) for 0 latency parsing of haptics per each pulse (heart beat). any help would be cool.
b