watchOS is the operating system for Apple Watch.

Posts under watchOS tag

133 Posts

Post

Replies

Boosts

Views

Activity

Caution: watchOS 26 Beta 2 (may) brick Hermes variants
Exercise caution applying Beta 2 on a Hermes Apple Watch. A number of anecdotes (including my own) that this causes very rapid battery drain, i.e. minutes, followed by a cycle of lower power mode, and very slow charge as battery drain seems as fast as charge so it tops out in low single digit %. Any interaction seems to cause the cycle to recur, rendering the watch in effect unusable. The connection to the phone is also broken, with the Watch app crashing after 1–2 seconds, 100% repeatably. This post is to caution avoidance, but a fix is going to be problematic if the watch can't get anywhere near 50% charge. The "anecdata" that this is widespread specifically with Hermes watches is: https://forums.macrumors.com/threads/watchos-26-beta-thread.2458443/page-5?post=33976625#post-33976625 And: https://www.reddit.com/r/watchOSBeta/comments/1lipud8/comment/mzh6ekt/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button Emailed through developer.apple.com with case ID 102630146259. Submitted feedback FB18336070 & FB18323575.
9
5
1.3k
Jun ’25
Best Way to Implement Collapsible Sections on watchOS 10+?
Hi all, I’m trying to implement a collapsible section in a List on watchOS (watchOS 10+). The goal is to have a disclosure chevron that toggles a section open/closed with animation, similar to DisclosureGroup on iOS. Unfortunately, DisclosureGroup is not available on watchOS. 😢 On iOS, this works as expected using this Section init: Section("My Header", isExpanded: $isExpanded) { // content } That gives me a tappable header with a disclosure indicator and the animation built in, as expected. But on watchOS, this same init displays the header, but it’s not tappable, and no disclosure triangle appears. I’ve found that to get it working on watchOS, I need to use the other initializer: Section(isExpanded: $isExpanded) { // content } header: { Button(action: { isExpanded.toggle() }) { HStack { Title("My Header") Spacer() Image(systemName: isExpanded ? "chevron.down" : "chevron.right") } } That works, but feels like a workaround. Is this the intended approach for watchOS, or am I missing a more native way to do this? Any best practices or alternative recommendations appreciated. Thanks!
2
0
128
Jun ’25
Launch companion Watch App without Health Kit
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...
0
0
146
Jun ’25
Apple Watch no longer connects reliably in Xcode
Hi all, I'm developing a standalone SwiftUI watchOS app (no iOS host or extension), targeting watchOS 11.5, and running into persistent connection issues with Xcode. Xcode rarely detects my Apple Watch (Series 7, watchOS 11.5) Sometimes it appears nested under the iPhone; most of the time, it doesn’t Errors include: "OS version is lower than the deployment target" (both are 11.5) "Unable to install... device not supported" "Connection error 4000", "Tunnel timeout error 1001" "Ensure Wi-Fi is enabled on both machines" (Wi-Fi is on and on the same network) Once in a while, the app does install, but mostly I’m blocked. What I’ve Tried Verified pairing and trust Cleaned builds, nuked Derived Data and caches Reset iPhone privacy settings Removed and re-added my Apple ID Used xcrun xctrace list devices (watch inconsistently appears) Despite this, the app only installs about 5% of the time. Testing (or even running) on real hardware is nearly impossible, and has become incredibly frustrating for me. Any help or insights would be much appreciated.
1
0
140
Jun ’25
HealthKit returns different values depending on the OS the request is made on
Hi, I've had trouble for a while now with HealthKit giving me different values if I make the request on iOS and WatchOS. I am using the exact same method on both with the same parameters but I get vast differences in the results. The code I am using to call HealthKit on both devices is: let dateRange = HKQuery.predicateForSamples(withStart: Date().removeMonths(numberOfMonths: 1), end: Date().endOfDay()) let predicate: NSPredicate predicate = NSCompoundPredicate(type: .and, subpredicates: [dateRange]) let query = HKStatisticsQuery(quantityType: HKQuantityType(.stepCount), quantitySamplePredicate: predicate, options: .cumulativeSum) { _, result, error in if error != nil { //print("Error fetching step count, or there is no data: \(error.localizedDescription), \(startDate) -> \(endDate)") onComplete(0) return } if let result, let sum = result.sumQuantity() { let stepCount = sum.doubleValue(for: HKUnit.count()) DispatchQueue.main.async { onComplete(Int(stepCount)) } } } healthStore.execute(query) }
4
0
1.3k
Jun ’25
NSPersistentCloudKitContainer causes crash on watchOS when device is offline
Hi. I'm hoping someone might be able to help us with an issue that's been affecting our standalone watchOS app for some time now. We've encountered consistent crashes on Apple Watch devices when the app enters the background while the device is offline (i.e., no Bluetooth and no Wi-Fi connection). Through extensive testing, we've isolated the problem to the use of NSPersistentCloudKitContainer. When we switch to NSPersistentContainer, the crashes no longer occur. Interestingly, this issue only affects our watchOS app. The same CloudKit-based persistence setup works reliably on our iOS and macOS apps, even when offline. This leads us to believe the issue may be specific to how NSPersistentCloudKitContainer behaves on watchOS when the device is disconnected from the network. We're targeting watchOS 10 and above. We're unsure if this is a misconfiguration on our end or a potential system-level issue, and we would greatly appreciate any insight or guidance.
2
0
151
Jun ’25
New developer question - exporting Apple Watch data to central server
This is probably a basic question but I wanted to ask your advice for the best way to take consenting users' Watch data from Apple Health Kit and send it to our central server? One idea we had was to create an iOS app that gets the data from Apple's Health SDK on the phone and sends it to our server. Would appreciate any help here, thank you.
1
0
92
Jun ’25
Real-Time WatchConnectivity Sync Not Working Between iPhone and Apple Watch
Hi everyone, I'm building a health-focused iOS and watchOS app that uses WatchConnectivity to sync real-time heart rate and core body temperature data from iPhone to Apple Watch. While the HealthKit integration works correctly on the iPhone side, I'm facing persistent issues with WatchConnectivity — the data either doesn't arrive on the Watch, or session(_:didReceiveMessage:) never gets triggered. Here's the setup: On iPhone: Using WCSession.default.sendMessage(_:replyHandler:errorHandler:) to send real-time values every few seconds. On Apple Watch: Implemented WCSessionDelegate, and session(_:didReceiveMessage:) is supposed to update the UI. Both apps have WCSession.isSupported() checks, activate the session, and assign delegates correctly. The session state shows isPaired = true and isWatchAppInstalled = true. Bluetooth and Wi-Fi are on, both devices are unlocked and nearby. Despite all this, the Watch never receives messages in real-time. Sometimes, data comes through in bulk much later or not at all. I've double-checked Info.plist configurations and made sure background modes include "Uses Bluetooth LE accessories" and "Background fetch" where appropriate. I would really appreciate guidance on: Best practices for reliable, low-latency message delivery with WatchConnectivity. Debugging steps or sample code to validate message transmission and reception. Any pitfalls related to UI updates from the delegate method. Happy to share further details. Thanks in advance!
1
0
538
Jun ’25
Trying to deploy WatchOS 9.6 to a watch that is on 10.6
I have an Apple Watch 4. (GPS). It's on version 10.6. I'm trying to deploy a basic app onto it (IOS 18) (WatchOS 9.6). I've set the targets in General for Watch App, Watch AppTest, Watch AppUITest. I still get an Apple Watches watchOS doesn't match App Watch app.app watch02 9.6 deployment target. Upgrade users Apple Watch watchOS version or lower app app.apps deployment target. What can I do to fix this?
1
0
311
Jun ’25
Fall Detection event sequencing
The sequence of events when Fall Detection is triggered is not clear from the documentation. https://developer.apple.com/forums/thread/763738 This post assumes that when a fall is detected by the watch, the standard UI ("It looks like you've taken a hard fall...") is shown, and only after this is resolved (user taps an option or times out) is an event sent to the CMFallDetectionDelegate in our app - is that correct? Is it possible instead to have our delegate be notified of a fall event immediately, and let our app's UI present options for next steps to the user?
3
0
175
Jun ’25
reloadAllTimelines() is broken on watchOS 11.5
I am experiencing an issue with my watchOS app. My application updates a shared file, accessible by both the main app and the WidgetKit extension, during a WatchConnectivity background task. Following this update, I call reloadAllTimelines(). This functionality worked as expected on watchOS 10, even without Developer Mode enabled. However, after updating my device to watchOS 11.5, this API appears to be broken. My reasons for believing this API is broken are threefold: The functionality worked reliably on watchOS 10. On watchOS 11.5, enabling "WidgetKit Developer Mode" (found under Settings > Developer) resolves the issue, and my complications update correctly. When I enter watch face edit mode, the snapshot/preview displayed (which utilizes the same underlying logic as the timeline API) shows the correct data. This indicates that the data has been successfully received from the phone, and the widget is indeed reading the updated shared file. Despite this, the actual widget view during its resting phase never updates. It's worth noting that TimelineReloadPolicy functions as expected, but I cannot rely on this for my use case. My widget requires immediate updates upon receiving new data. Apple, please investigate this behavior.
1
2
671
Jun ’25
Launching an apple watch app from the companion app
Hi, as stated in the title I'm trying to launch a watchOS app from its companion iOS app. My issue is very similar to this post: https://developer.apple.com/forums/thread/734362 The response from apple in that post says that it is not possible, but I have found it to be possible for media apps. Specifically if you turn Settings > General > Auto-Launch > Live Activities > Media Apps and turn Auto-Launch to "App". My app is for medical research and having this available would be very helpful for our testing. I need the app to be fully in the foreground. Is there a way to get specific permissions for our app to do this? Am I missing something? I've tried starting a workout session to accomplish this, but it only seems to work when the watch is charging. Any feedback is appreciated, thank you.
1
0
219
Jun ’25
Caution: watchOS 26 Beta 2 (may) brick Hermes variants
Exercise caution applying Beta 2 on a Hermes Apple Watch. A number of anecdotes (including my own) that this causes very rapid battery drain, i.e. minutes, followed by a cycle of lower power mode, and very slow charge as battery drain seems as fast as charge so it tops out in low single digit %. Any interaction seems to cause the cycle to recur, rendering the watch in effect unusable. The connection to the phone is also broken, with the Watch app crashing after 1–2 seconds, 100% repeatably. This post is to caution avoidance, but a fix is going to be problematic if the watch can't get anywhere near 50% charge. The "anecdata" that this is widespread specifically with Hermes watches is: https://forums.macrumors.com/threads/watchos-26-beta-thread.2458443/page-5?post=33976625#post-33976625 And: https://www.reddit.com/r/watchOSBeta/comments/1lipud8/comment/mzh6ekt/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button Emailed through developer.apple.com with case ID 102630146259. Submitted feedback FB18336070 & FB18323575.
Replies
9
Boosts
5
Views
1.3k
Activity
Jun ’25
Best Way to Implement Collapsible Sections on watchOS 10+?
Hi all, I’m trying to implement a collapsible section in a List on watchOS (watchOS 10+). The goal is to have a disclosure chevron that toggles a section open/closed with animation, similar to DisclosureGroup on iOS. Unfortunately, DisclosureGroup is not available on watchOS. 😢 On iOS, this works as expected using this Section init: Section("My Header", isExpanded: $isExpanded) { // content } That gives me a tappable header with a disclosure indicator and the animation built in, as expected. But on watchOS, this same init displays the header, but it’s not tappable, and no disclosure triangle appears. I’ve found that to get it working on watchOS, I need to use the other initializer: Section(isExpanded: $isExpanded) { // content } header: { Button(action: { isExpanded.toggle() }) { HStack { Title("My Header") Spacer() Image(systemName: isExpanded ? "chevron.down" : "chevron.right") } } That works, but feels like a workaround. Is this the intended approach for watchOS, or am I missing a more native way to do this? Any best practices or alternative recommendations appreciated. Thanks!
Replies
2
Boosts
0
Views
128
Activity
Jun ’25
Launch companion Watch App without Health Kit
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...
Replies
0
Boosts
0
Views
146
Activity
Jun ’25
Apple Watch no longer connects reliably in Xcode
Hi all, I'm developing a standalone SwiftUI watchOS app (no iOS host or extension), targeting watchOS 11.5, and running into persistent connection issues with Xcode. Xcode rarely detects my Apple Watch (Series 7, watchOS 11.5) Sometimes it appears nested under the iPhone; most of the time, it doesn’t Errors include: "OS version is lower than the deployment target" (both are 11.5) "Unable to install... device not supported" "Connection error 4000", "Tunnel timeout error 1001" "Ensure Wi-Fi is enabled on both machines" (Wi-Fi is on and on the same network) Once in a while, the app does install, but mostly I’m blocked. What I’ve Tried Verified pairing and trust Cleaned builds, nuked Derived Data and caches Reset iPhone privacy settings Removed and re-added my Apple ID Used xcrun xctrace list devices (watch inconsistently appears) Despite this, the app only installs about 5% of the time. Testing (or even running) on real hardware is nearly impossible, and has become incredibly frustrating for me. Any help or insights would be much appreciated.
Replies
1
Boosts
0
Views
140
Activity
Jun ’25
HealthKit returns different values depending on the OS the request is made on
Hi, I've had trouble for a while now with HealthKit giving me different values if I make the request on iOS and WatchOS. I am using the exact same method on both with the same parameters but I get vast differences in the results. The code I am using to call HealthKit on both devices is: let dateRange = HKQuery.predicateForSamples(withStart: Date().removeMonths(numberOfMonths: 1), end: Date().endOfDay()) let predicate: NSPredicate predicate = NSCompoundPredicate(type: .and, subpredicates: [dateRange]) let query = HKStatisticsQuery(quantityType: HKQuantityType(.stepCount), quantitySamplePredicate: predicate, options: .cumulativeSum) { _, result, error in if error != nil { //print("Error fetching step count, or there is no data: \(error.localizedDescription), \(startDate) -> \(endDate)") onComplete(0) return } if let result, let sum = result.sumQuantity() { let stepCount = sum.doubleValue(for: HKUnit.count()) DispatchQueue.main.async { onComplete(Int(stepCount)) } } } healthStore.execute(query) }
Replies
4
Boosts
0
Views
1.3k
Activity
Jun ’25
NSPersistentCloudKitContainer causes crash on watchOS when device is offline
Hi. I'm hoping someone might be able to help us with an issue that's been affecting our standalone watchOS app for some time now. We've encountered consistent crashes on Apple Watch devices when the app enters the background while the device is offline (i.e., no Bluetooth and no Wi-Fi connection). Through extensive testing, we've isolated the problem to the use of NSPersistentCloudKitContainer. When we switch to NSPersistentContainer, the crashes no longer occur. Interestingly, this issue only affects our watchOS app. The same CloudKit-based persistence setup works reliably on our iOS and macOS apps, even when offline. This leads us to believe the issue may be specific to how NSPersistentCloudKitContainer behaves on watchOS when the device is disconnected from the network. We're targeting watchOS 10 and above. We're unsure if this is a misconfiguration on our end or a potential system-level issue, and we would greatly appreciate any insight or guidance.
Replies
2
Boosts
0
Views
151
Activity
Jun ’25
New developer question - exporting Apple Watch data to central server
This is probably a basic question but I wanted to ask your advice for the best way to take consenting users' Watch data from Apple Health Kit and send it to our central server? One idea we had was to create an iOS app that gets the data from Apple's Health SDK on the phone and sends it to our server. Would appreciate any help here, thank you.
Replies
1
Boosts
0
Views
92
Activity
Jun ’25
Real-Time WatchConnectivity Sync Not Working Between iPhone and Apple Watch
Hi everyone, I'm building a health-focused iOS and watchOS app that uses WatchConnectivity to sync real-time heart rate and core body temperature data from iPhone to Apple Watch. While the HealthKit integration works correctly on the iPhone side, I'm facing persistent issues with WatchConnectivity — the data either doesn't arrive on the Watch, or session(_:didReceiveMessage:) never gets triggered. Here's the setup: On iPhone: Using WCSession.default.sendMessage(_:replyHandler:errorHandler:) to send real-time values every few seconds. On Apple Watch: Implemented WCSessionDelegate, and session(_:didReceiveMessage:) is supposed to update the UI. Both apps have WCSession.isSupported() checks, activate the session, and assign delegates correctly. The session state shows isPaired = true and isWatchAppInstalled = true. Bluetooth and Wi-Fi are on, both devices are unlocked and nearby. Despite all this, the Watch never receives messages in real-time. Sometimes, data comes through in bulk much later or not at all. I've double-checked Info.plist configurations and made sure background modes include "Uses Bluetooth LE accessories" and "Background fetch" where appropriate. I would really appreciate guidance on: Best practices for reliable, low-latency message delivery with WatchConnectivity. Debugging steps or sample code to validate message transmission and reception. Any pitfalls related to UI updates from the delegate method. Happy to share further details. Thanks in advance!
Replies
1
Boosts
0
Views
538
Activity
Jun ’25
Trying to deploy WatchOS 9.6 to a watch that is on 10.6
I have an Apple Watch 4. (GPS). It's on version 10.6. I'm trying to deploy a basic app onto it (IOS 18) (WatchOS 9.6). I've set the targets in General for Watch App, Watch AppTest, Watch AppUITest. I still get an Apple Watches watchOS doesn't match App Watch app.app watch02 9.6 deployment target. Upgrade users Apple Watch watchOS version or lower app app.apps deployment target. What can I do to fix this?
Replies
1
Boosts
0
Views
311
Activity
Jun ’25
Fall Detection event sequencing
The sequence of events when Fall Detection is triggered is not clear from the documentation. https://developer.apple.com/forums/thread/763738 This post assumes that when a fall is detected by the watch, the standard UI ("It looks like you've taken a hard fall...") is shown, and only after this is resolved (user taps an option or times out) is an event sent to the CMFallDetectionDelegate in our app - is that correct? Is it possible instead to have our delegate be notified of a fall event immediately, and let our app's UI present options for next steps to the user?
Replies
3
Boosts
0
Views
175
Activity
Jun ’25
iOS and iPadOS watchOS macOS 26 Control Center liquid glass
Hi Apple developer community. I have a question a lot of users don’t like the new control center and notification center. Are you guys gonna blur the background or are you guys gonna keep it the same?
Replies
1
Boosts
0
Views
303
Activity
Jun ’25
reloadAllTimelines() is broken on watchOS 11.5
I am experiencing an issue with my watchOS app. My application updates a shared file, accessible by both the main app and the WidgetKit extension, during a WatchConnectivity background task. Following this update, I call reloadAllTimelines(). This functionality worked as expected on watchOS 10, even without Developer Mode enabled. However, after updating my device to watchOS 11.5, this API appears to be broken. My reasons for believing this API is broken are threefold: The functionality worked reliably on watchOS 10. On watchOS 11.5, enabling "WidgetKit Developer Mode" (found under Settings > Developer) resolves the issue, and my complications update correctly. When I enter watch face edit mode, the snapshot/preview displayed (which utilizes the same underlying logic as the timeline API) shows the correct data. This indicates that the data has been successfully received from the phone, and the widget is indeed reading the updated shared file. Despite this, the actual widget view during its resting phase never updates. It's worth noting that TimelineReloadPolicy functions as expected, but I cannot rely on this for my use case. My widget requires immediate updates upon receiving new data. Apple, please investigate this behavior.
Replies
1
Boosts
2
Views
671
Activity
Jun ’25
Launching an apple watch app from the companion app
Hi, as stated in the title I'm trying to launch a watchOS app from its companion iOS app. My issue is very similar to this post: https://developer.apple.com/forums/thread/734362 The response from apple in that post says that it is not possible, but I have found it to be possible for media apps. Specifically if you turn Settings > General > Auto-Launch > Live Activities > Media Apps and turn Auto-Launch to "App". My app is for medical research and having this available would be very helpful for our testing. I need the app to be fully in the foreground. Is there a way to get specific permissions for our app to do this? Am I missing something? I've tried starting a workout session to accomplish this, but it only seems to work when the watch is charging. Any feedback is appreciated, thank you.
Replies
1
Boosts
0
Views
219
Activity
Jun ’25