watchOS is the operating system for Apple Watch.

Posts under watchOS tag

200 Posts

Post

Replies

Boosts

Views

Activity

Requesting private watchOS Bluetooth entitlements for open-source CGM-connected AID app (FB22619409)
I'm a contributor to Trio, an open-source automated insulin delivery (AID) app for iOS/watchOS maintained by the Nightscout Foundation. I'm posting at the recommendation of the engineering team via Feedback Assistant FB22619409 (Developer Support case 102865854185). The goal We're prototyping direct BLE connectivity between the Trio watchOS extension and the Dexcom G7 CGM sensor — eliminating dependence on iPhone-to-Watch relay via WatchConnectivity. For an AID app, stale CGM data affects insulin dosing decisions; this is a patient safety concern. The entitlements needed To maintain a BLE connection to the G7 while backgrounded and with the display off/wrist lowered, the WatchKit extension requires: com.apple.developer.bluetooth-central-background com.apple.developer.bluetooth-central-screen-off-scanning What I've confirmed Both entitlements are present on Dexcom's shipping G7 WatchKit extension (com.dexcom.g7app.watchkitapp.watchkitextension), verifiable via: codesign -d --entitlements :- \ "Dexcom G7.app/Watch/G7Watch.app/PlugIns/G7Watch Extension.appex" Output includes: com.apple.developer.bluetooth-central-background = true com.apple.developer.bluetooth-central-screen-off-scanning = true These are not self-service capabilities exposed through Xcode or the developer portal for our account: Xcode → Trio Watch App target → Signing & Capabilities → + Capability → searching com.apple.developer.bluetooth-central-background returns No Matches Certificates, Identifiers & Profiles → WatchKit Extension App ID (org.nightscout.5QE6TMMEH2.trio.watchkitapp.watchkitextension) → the entitlement does not appear under Capability Requests A screen recording demonstrating both is attached to FB22619409. The May 16 Apple Feedback response noted that the entitlement was visible in an internal Xcode project — consistent with it being a restricted/managed entitlement not exposed through standard developer accounts. My questions What is the correct process to request com.apple.developer.bluetooth-central-background for a watchOS extension App ID where it does not appear in Capability Requests? Is com.apple.developer.bluetooth-central-screen-off-scanning available through a private/managed entitlement process, and how do we enter that process? Is there a formal Apple program (e.g., MFi, HealthKit entitlements, or similar) applicable to CGM-connected medical apps that covers these entitlements? Full account details, screen recording, and entitlement output are attached to FB22619409 / Developer Support case 102865854185. Happy to provide a test build, full entitlement output, or additional context if needed. Thank you
2
0
1.6k
Jul ’26
Please add Sleep Tracking support for Family Setup Apple Watches
Hi everyone, I’d love to see Apple add full Sleep Tracking support for Apple Watches that are set up using Family Setup. Many families use Family Setup for children or older family members who don’t have an iPhone of their own. Sleep is one of the most important health metrics, and it would be incredibly useful if caregivers could view sleep duration and trends just like they can with other health features. This would help parents better understand their child’s sleep habits and would also be valuable for families caring for older adults. Even if detailed health data stayed private, allowing sleep summaries to sync through Family Setup would make the feature much more useful. I hope Apple considers adding this in a future watchOS update. Is this something anyone else would find helpful?
0
0
735
Jul ’26
WidgetKit complications won't update
We are migrating ClockKit complications to WidgetKit in our watch app (watchOS 9+). The migration went smoothly, UI part works just fine. However, we've hit the wall with widgets not updating when requested by the watch app. I believe we are missing something very simple and fundamental, but couldn't find what exactly so far. Advice and tips would be very welcome! 🙇‍♂️ Our implementation details: Whenever data is changed in the main app, the updated data is submitted to the watch app via WatchConnectivity framework using WCSession.default.transferCurrentComplicationUserInfo(_:). According to documentation, this method should be used to transfer complication-related data, since it will wake the watch app even if it is in the background or not opened at all. Watch app receives updated data and stores it in UserDefaults shared with Watch Widget Extension hosting WidgetKit complications via App Group. Watch app then request widget timeline reload via WidgetCenter.shared.reloadAllTimelines(). According to documentation, it reloads the timelines for all configured widgets belonging to the containing app, so it seems the appropriate way to reload WidgetKit complications. Widget Timeline Provider class in Watch Widget Extension reads updated data from shared UserDefaults and uses it to provide the updated snapshot for widget views to render. We believe our implementation logic is correct, but it doesn't work, for some reason. Widgets sometimes update when the watch app is opened, but not always. The most definitive way to force widgets to update is to switch to a different watch face, which confirms that the Widget Timeline Provider has access to properly updated data. P.S. We are aware of the daily reload budget imposed on widgets, so we use widgets reload trigger sparingly. Anyway, according to documentation, reload budget is not effective when in DEBUG mode, but widgets won't reload even in DEBUG mode. Thank you!
20
10
1.0.0k
Jul ’26
Can any Apple Watch running WatchOS 27 access PCC via Foundation Models?
Apologies, if I've missed the answer already here, I've searched around but can't find it. Foundation models and Private Cloud Compute require Apple Intelligence to be enabled in Settings as mentioned here. At the same time it says that Foundation Models PCC calls are supported on all Apple Watch models that run WatchOS 27. So, will there be a seperate Apple Intelligence setting in WatchOS 27 for those devices? Otherwise if a user has an Apple Watch Series 11 (which does support Apple Intelligence) paired with an iPhone 15 (which doesn't support Apple Intelligence), will they be unable to use the Foundation Models PCC calls from WatchOS in my app? Despite the fact the iPhone isn't involved in these queries anyway?
1
1
851
Jul ’26
Feature Proposal: Apple Intelligence Guided Workouts for Apple Watch
Hi everyone, After watching WWDC26 and going for a run today, I came up with an idea that I believe could be a natural extension of Apple Intelligence and Apple Watch. This proposal is not intended to replace Custom Workouts. Instead, it focuses on removing the manual setup required to create them by allowing Apple Intelligence to understand workout plans written in natural language. Today, Apple Watch already supports Custom Workouts, but users still have to manually recreate interval workouts. For example: • Walk 5 minutes • Run 1 minute • Walk 1 minute 30 seconds • Repeat 6 times Instead, Apple Intelligence could understand workouts written in natural language and automatically generate a structured Apple Watch workout. This could work from multiple sources: Notes Messages Mail PDFs Screenshots Photos of printed training plans Websites The generated workout could then be reviewed by the user before being saved and synchronized to Apple Watch. Intelligent Haptics I also imagined an optional feature called Intelligent Haptics. Instead of using a single vibration for interval transitions, the watch could communicate through different haptic patterns: Progressive vibration before a running interval starts. Decreasing vibration when an interval ends. Rhythmic vibrations during recovery to help regulate breathing. The goal isn't simply to notify the user—it is to reduce the need to constantly look at the display and allow them to stay focused on the workout. Since Apple Intelligence is becoming a system-wide capability, I think workouts could be understood just like calendar events, reminders or emails. I have already submitted this proposal through Feedback Assistant, but I would love to hear what other developers think. Would this be a feature you would like to see in watchOS? I'm curious to hear how other developers would improve this concept.
0
0
1k
Jul ’26
watchOS 27 Developer Beta: App Switcher no longer accessible via double-press of Digital Crown
Hello, I updated my Apple Watch SE 3 (GPS + Cellular, 44 mm) to watchOS 27 Developer Beta (Build 24R5289n) and noticed what appears to be a change in the Digital Crown behavior. After the update: • A single press of the Digital Crown now shows fewer applications, which seems consistent with the changes announced for watchOS 27. • However, a double press of the Digital Crown no longer opens the App Switcher as it did previously. • As a result, I can no longer access the interface that allowed users to view recent apps and force-close applications by swiping them away. Before updating, double-pressing the Digital Crown opened the App Switcher and provided a way to close running apps. That functionality now appears to be missing. I would like to know whether: This is an intentional design change in watchOS 27. This is a known issue in the current Developer Beta. There is a new gesture or workflow for accessing recent apps and force-closing applications. Device: Apple Watch SE 3 (GPS + Cellular) 44 mm Aluminum Model: MEPJ4LW/A Software: watchOS 27.0 Developer Beta Build: 24R5289n The behavior is reproducible after restarting the watch. Thanks.
2
9
3.1k
Jun ’26
URLSession on watchOS never fails over to watch's own Wi-Fi when paired iPhone has Bluetooth but no internet (-1200)
We develop a healthcare emergency-alerting app with a native watchOS companion app. We've hit a network routing issue on watchOS that we cannot work around with any public API, and it breaks a safety-critical flow (triggering an emergency alarm from the watch). Environment watchOS 26.5 on Apple Watch SE3, paired with iPhone SE 2nd Gen on iOS 26.5 Watch app deployment target: watchOS 9.0 Plain URLSession (async/await), default configuration plus waitsForConnectivity = false, allowsExpensiveNetworkAccess = true, allowsConstrainedNetworkAccess = true HTTPS to our own backend (valid public TLS certificate, no pinning) Steps to reproduce Pair the watch with the iPhone. Both on the same known Wi-Fi network. On the iPhone: turn OFF Wi-Fi and cellular data. Keep Bluetooth ON. The watch remains connected to its known Wi-Fi network (or would be, if the system brought the radio up). Trigger any HTTPS request from the watch app (foreground). Expected Since the companion iPhone has no internet, the watch should satisfy the request over its own Wi-Fi. Actual The request is routed through the companion link (ipsec1, "companion preference: prefer" in the logs) and fails after the TLS handshake dies inside the tunnel: Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9816 (errSSLClosedNoNotify) The watch never fails over to its own Wi-Fi, no matter how many times we retry or how long we wait. The same request succeeds within seconds if the user disables Bluetooth on the iPhone (watch then joins Wi-Fi directly), or restores the iPhone's internet. What we already tried waitsForConnectivity = true doesn't help; a path exists (the tunnel), it just doesn't work. Fresh URLSession per retry, backoff retries still routed via the tunnel. Per TN3135 we understand low-level networking is not available to a normal app: we prototyped NWConnection with prohibitedInterfaceTypes = [.other], and indeed on device NWPathMonitor stays .unsatisfied even when the watch has working Wi-Fi, exactly as TN3135 describes. So Network framework is not an escape hatch for us, and we are not looking to abuse the audio-streaming/CallKit carve-outs. Questions Is the companion-preferred routing supposed to fail over to the watch's own Wi-Fi when the iPhone is reachable over Bluetooth but has no internet? If yes, on what timescale, and is there anything an app can do to help the system notice the dead path sooner? Is there ANY supported way for a foreground watchOS app to express "do not use the companion link for this request"? We found only the private _companionProxyPreference SPI, which we obviously can't ship. If the answer to both is "no", what is the recommended pattern for safety-critical requests in this state is failing fast and instructing the user to disable iPhone Bluetooth really the intended UX? Related earlier reports of the same behavior: https://developer.apple.com/forums/thread/759321 https://developer.apple.com/forums/thread/107964
2
1
1.5k
Jun ’26
Why does a watchOS HKLiveWorkoutBuilder soccer workout report shorter totalDistance than Apple Workout soccer?
I’m developing a watchOS app that records outdoor soccer workouts using HealthKit. My app starts a workout session with: HKWorkoutConfiguration.activityType = .soccer HKWorkoutConfiguration.locationType = .outdoor HKWorkoutSession HKLiveWorkoutBuilder HKLiveWorkoutDataSource During the workout, I display distance from the live builder statistics: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning) After the workout ends, I save the workout using finishWorkout(), and later read the saved distance from: HKWorkout.totalDistance?.doubleValue(for: .meter()) So the total distance shown in my app is not calculated manually from GPS route points. It comes from HealthKit’s workout distance. I noticed a difference between soccer workouts recorded by Apple’s built-in Workout app and soccer workouts recorded by my third-party watchOS app. Example comparison: Apple Workout app soccer: Active duration: about 88 min Steps: about 8,832 Distance: about 6.7 km No visible route/location data in Fitness My watchOS app soccer: Active duration: about 87 min Steps: about 8,998 Distance: about 5.6 km Includes route/location data Workout recorded through HKWorkoutSession + HKLiveWorkoutBuilder Distance read from HKWorkout.totalDistance The step counts and active durations are very close, but the distance differs by about 1.1 km. One important detail is that the Apple Workout app soccer workout does not appear to include visible route/location data in Fitness, while my third-party workout does include route/location data. Despite that, the Apple Workout app reports a longer distance. So the comparison is not simply “GPS route distance vs GPS route distance”. It looks like the built-in Workout app may be estimating soccer distance without exposing route data, while HKLiveWorkoutBuilder for a third-party .soccer workout may be producing a different totalDistance estimate. My questions are: When the built-in Apple Workout app records an outdoor soccer workout without exposing route data, how is totalDistance estimated? Is that distance estimation behavior available to third-party watchOS apps using HKWorkoutSession + HKLiveWorkoutBuilder with .soccer? If a third-party app records route data for the same soccer activity, can that change how HealthKit calculates totalDistance compared with a no-route built-in Workout app recording? For third-party soccer workouts, should developers expect HKWorkout.totalDistance to match the built-in Workout app, or is a difference expected? Is there any additional configuration, entitlement, data type, or best practice required to get more accurate distance estimates for soccer workouts? Any clarification on the expected behavior would be very helpful. Thanks!
0
1
851
Jun ’26
FoundationModels Framework on watchOS 27 Beta 2
When importing FoundationModels in watchOS 27 Beta 2 this error appears: /Applications/Xcode-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/FoundationModels.framework/Modules/FoundationModels.swiftmodule/arm64e-apple-watchos.swiftinterface:6:15 Unable to resolve module dependency: 'CoreImage' Does anybody else have this issue?
1
0
767
Jun ’26
XCode 26.5: cannot Copy shared cache symbols from Apple Watch
The process of copying shared cache symbols from my Apple Watch has been horrendous. I cannot even get past 2% complete before this process fails. Every device is on the same network. I have trusted my machine. Developer mode is enabled on the watch. I have successfully paired the phone and watch. I managed to install an Watch app onto the watch. But the shared cache symbols were never copied from the watch. I gathered several commands at the terminal to help me. rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Developer/CoreDevice sudo killall -9 remoted CoreDeviceService 2>/dev/null || true xcrun devicectl manage ddis update xcrun devicectl list devices Clear CoreDevice state. With Xcode quit: rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode Reset Xcode's Local Network permission. tccutil reset Local-Network com.apple.dt.Xcode tccutil reset Bluetooth com.apple.dt.Xcode xcrun devicectl device info hardware --device MY_DEVICE_ID xcrun devicectl list devices ping -c 3 MY_IP_ADDRESS Confirm no VPN/proxy/filter is lurking scutil --nwi ifconfig | grep -E "utun|ipsec|tap|tun" xcrun devicectl device info details --device MY_DEVICE_ID xcrun devicectl manage pair --device MY_DEVICE_ID I keep obtain this type of error: Unable to copy shared cache files Domain: com.apple.dt.deviceprep Code: -33 User Info: { DVTErrorCreationDateKey = "2026-05-20 23:41:00 +0000"; NSLocalizedRecoverySuggestion = ""; "com.apple.dt.DVTCoreDevice.operationName" = dtfetchsymbols; } -- The operation couldn’t be completed. No route to host Domain: NSPOSIXErrorDomain Code: 65 Failure Reason: No route to host -- System Information macOS Version 26.5 (Build 25F71) Xcode 26.5 (24943) (Build 17F42) Timestamp: 2026-05-20T16:41:00-07:00 Does anyone have ideas to help me overcome this nightmare?
4
1
1.3k
Jun ’26
Recommended way to track watchOS complication install/remove events for analytics?
We ship WidgetKit complications (StaticConfiguration, TimelineProvider) in a companion iOS + watchOS app and want to send Adobe Analytics when users add, remove, or switch complication kinds/families on their watch face. From the widget extension we only see timeline refreshes via getTimeline, which seems too noisy and unrelated to user intent to use for lifecycle tracking. On iOS we diff WidgetCenter.shared.currentConfigurations() at app launch against persisted state—is that also Apple’s recommended pattern on watchOS, or is there a supported callback we’re missing? How should this work for a companion app (watch collects and relays via WatchConnectivity vs. tracking from the iPhone Watch app) versus a standalone watch app where third-party analytics may only run on-device? We’re especially unsure how reliably removal is detected if the watch app doesn’t launch again after a complication is removed.
0
0
777
Jun ’26
Feature Request: Supporting alternate app icons on watchOS for brand uniformity
With the recent introduction of the unified asset pipeline and Icon Composer, managing cross-platform icon designs has become incredibly efficient. However, there is still a significant platform disparity when it comes to maintaining visual consistency and brand uniformity across paired devices. On iOS, we can dynamically change the app icon at runtime using the setAlternateIconName API. Currently, watchOS completely lacks an equivalent mechanism. If a user selects an alternative icon inside an iOS companion app, the paired Apple Watch app icon remains locked to the default primary asset. This creates a disjointed experience and directly impacts user recognition. The watchOS home screen relies entirely on instant visual cues. If a user changes their iPhone icon to a custom colorway, they instinctively look for that same colorway on their wrist. Leaving the watch icon unchanged makes it harder to quickly locate the app. I have submitted an enhancement request via Feedback Assistant to bring alternate app icon support to watchOS, ideally through an automatic system-level sync within the unified .icon pipeline, or via a native watchOS runtime API. If your app utilizes alternate icons and you would like to see this cross-device continuity brought to watchOS, please consider filing your own duplicate request to help bring visibility to this gap. Filed Feedback: FB23080617
0
0
417
Jun ’26
Best practices for speeding up watchOS physical device debugging loops in Xcode?
What are the best practices for a painless physical watchOS debugging loop in Xcode? Debugging a standalone or companion watchOS app on a physical Apple Watch is arguably the slowest feedback loop in Apple development. Every minor code change often results in Xcode getting stuck on "Installing to Apple Watch" for minutes, or throwing a "Failed to attach" LLDB error after a long timeout. The biggest bottlenecks seem to be: The initial Symbol Copying / dyld shared cache sync: This takes forever whenever watchOS gets updated. Can these symbols be pre-cached or manually downloaded on the Mac via an internet connection rather than pulling them byte-by-byte from the watch? Slow Installation over Bluetooth: The watch often defaults to a sluggish Bluetooth link with the iPhone instead of leveraging local Wi-Fi or the direct Mac-to-Watch network tunnel. Debugger Connection Timeouts: Xcode routinely loses track of the target process before the app finishes launching on the watch. My Question: What are your recommended workflows, hidden Xcode flags, build settings, or networking setups to make physical watchOS debugging as close to the simulator experience as possible? Specifically, how do we handle symbol caching and force faster deployment pipelines?
0
1
590
Jun ’26
SceneKit shader compile and cache issues? :(
I'm making an apple watch game and it's running so smooth and nice while developing but I ran into a showstopping problem that I wouldn't even have noticed until i deleted the app and reinstalled... Every first-run on a freshly installed copy of the game has major frame hitches as it loads assets. Every run after that has ZERO hitches and runs like butter. Even if i install a new version on top of the old one (which is why i never noticed this problem in my almost finished game) it runs smooth. Framerate issues come back if I delete and reinstall. I think it's compiling shaders or caching geometry but I haven't been able to trick it into doing the hard work during non-critical moments in the game. I've tried preloading assets in the main menu, loading at the start of the level, loading and rendering in a tiny part of the screen, rendering behind dialog boxes... it seems no matter what i can only get rid of the frame hitches after the game has been played through once... and I'm going to lose all customers on that first terrible impression even though the game is actually really good and fun when it's running properly... Any suggestions how i can prewarm/precompile the assets to avoid framerate hitches and freezes during gameplay? I thought I was so close to release but I feel this is un-shippable! I can send a link to my test flight build to anyone that wants to see the problem first hand. Also please note that I am artist-forward with a technical lean, but certainly not a real programmer, unfortunately. Jiovanie
2
0
1.3k
Jun ’26
Requesting private watchOS Bluetooth entitlements for open-source CGM-connected AID app (FB22619409)
I'm a contributor to Trio, an open-source automated insulin delivery (AID) app for iOS/watchOS maintained by the Nightscout Foundation. I'm posting at the recommendation of the engineering team via Feedback Assistant FB22619409 (Developer Support case 102865854185). The goal We're prototyping direct BLE connectivity between the Trio watchOS extension and the Dexcom G7 CGM sensor — eliminating dependence on iPhone-to-Watch relay via WatchConnectivity. For an AID app, stale CGM data affects insulin dosing decisions; this is a patient safety concern. The entitlements needed To maintain a BLE connection to the G7 while backgrounded and with the display off/wrist lowered, the WatchKit extension requires: com.apple.developer.bluetooth-central-background com.apple.developer.bluetooth-central-screen-off-scanning What I've confirmed Both entitlements are present on Dexcom's shipping G7 WatchKit extension (com.dexcom.g7app.watchkitapp.watchkitextension), verifiable via: codesign -d --entitlements :- \ "Dexcom G7.app/Watch/G7Watch.app/PlugIns/G7Watch Extension.appex" Output includes: com.apple.developer.bluetooth-central-background = true com.apple.developer.bluetooth-central-screen-off-scanning = true These are not self-service capabilities exposed through Xcode or the developer portal for our account: Xcode → Trio Watch App target → Signing & Capabilities → + Capability → searching com.apple.developer.bluetooth-central-background returns No Matches Certificates, Identifiers & Profiles → WatchKit Extension App ID (org.nightscout.5QE6TMMEH2.trio.watchkitapp.watchkitextension) → the entitlement does not appear under Capability Requests A screen recording demonstrating both is attached to FB22619409. The May 16 Apple Feedback response noted that the entitlement was visible in an internal Xcode project — consistent with it being a restricted/managed entitlement not exposed through standard developer accounts. My questions What is the correct process to request com.apple.developer.bluetooth-central-background for a watchOS extension App ID where it does not appear in Capability Requests? Is com.apple.developer.bluetooth-central-screen-off-scanning available through a private/managed entitlement process, and how do we enter that process? Is there a formal Apple program (e.g., MFi, HealthKit entitlements, or similar) applicable to CGM-connected medical apps that covers these entitlements? Full account details, screen recording, and entitlement output are attached to FB22619409 / Developer Support case 102865854185. Happy to provide a test build, full entitlement output, or additional context if needed. Thank you
Replies
2
Boosts
0
Views
1.6k
Activity
Jul ’26
Please add Sleep Tracking support for Family Setup Apple Watches
Hi everyone, I’d love to see Apple add full Sleep Tracking support for Apple Watches that are set up using Family Setup. Many families use Family Setup for children or older family members who don’t have an iPhone of their own. Sleep is one of the most important health metrics, and it would be incredibly useful if caregivers could view sleep duration and trends just like they can with other health features. This would help parents better understand their child’s sleep habits and would also be valuable for families caring for older adults. Even if detailed health data stayed private, allowing sleep summaries to sync through Family Setup would make the feature much more useful. I hope Apple considers adding this in a future watchOS update. Is this something anyone else would find helpful?
Replies
0
Boosts
0
Views
735
Activity
Jul ’26
WidgetKit complications won't update
We are migrating ClockKit complications to WidgetKit in our watch app (watchOS 9+). The migration went smoothly, UI part works just fine. However, we've hit the wall with widgets not updating when requested by the watch app. I believe we are missing something very simple and fundamental, but couldn't find what exactly so far. Advice and tips would be very welcome! 🙇‍♂️ Our implementation details: Whenever data is changed in the main app, the updated data is submitted to the watch app via WatchConnectivity framework using WCSession.default.transferCurrentComplicationUserInfo(_:). According to documentation, this method should be used to transfer complication-related data, since it will wake the watch app even if it is in the background or not opened at all. Watch app receives updated data and stores it in UserDefaults shared with Watch Widget Extension hosting WidgetKit complications via App Group. Watch app then request widget timeline reload via WidgetCenter.shared.reloadAllTimelines(). According to documentation, it reloads the timelines for all configured widgets belonging to the containing app, so it seems the appropriate way to reload WidgetKit complications. Widget Timeline Provider class in Watch Widget Extension reads updated data from shared UserDefaults and uses it to provide the updated snapshot for widget views to render. We believe our implementation logic is correct, but it doesn't work, for some reason. Widgets sometimes update when the watch app is opened, but not always. The most definitive way to force widgets to update is to switch to a different watch face, which confirms that the Widget Timeline Provider has access to properly updated data. P.S. We are aware of the daily reload budget imposed on widgets, so we use widgets reload trigger sparingly. Anyway, according to documentation, reload budget is not effective when in DEBUG mode, but widgets won't reload even in DEBUG mode. Thank you!
Replies
20
Boosts
10
Views
1.0.0k
Activity
Jul ’26
Can any Apple Watch running WatchOS 27 access PCC via Foundation Models?
Apologies, if I've missed the answer already here, I've searched around but can't find it. Foundation models and Private Cloud Compute require Apple Intelligence to be enabled in Settings as mentioned here. At the same time it says that Foundation Models PCC calls are supported on all Apple Watch models that run WatchOS 27. So, will there be a seperate Apple Intelligence setting in WatchOS 27 for those devices? Otherwise if a user has an Apple Watch Series 11 (which does support Apple Intelligence) paired with an iPhone 15 (which doesn't support Apple Intelligence), will they be unable to use the Foundation Models PCC calls from WatchOS in my app? Despite the fact the iPhone isn't involved in these queries anyway?
Replies
1
Boosts
1
Views
851
Activity
Jul ’26
Feature Proposal: Apple Intelligence Guided Workouts for Apple Watch
Hi everyone, After watching WWDC26 and going for a run today, I came up with an idea that I believe could be a natural extension of Apple Intelligence and Apple Watch. This proposal is not intended to replace Custom Workouts. Instead, it focuses on removing the manual setup required to create them by allowing Apple Intelligence to understand workout plans written in natural language. Today, Apple Watch already supports Custom Workouts, but users still have to manually recreate interval workouts. For example: • Walk 5 minutes • Run 1 minute • Walk 1 minute 30 seconds • Repeat 6 times Instead, Apple Intelligence could understand workouts written in natural language and automatically generate a structured Apple Watch workout. This could work from multiple sources: Notes Messages Mail PDFs Screenshots Photos of printed training plans Websites The generated workout could then be reviewed by the user before being saved and synchronized to Apple Watch. Intelligent Haptics I also imagined an optional feature called Intelligent Haptics. Instead of using a single vibration for interval transitions, the watch could communicate through different haptic patterns: Progressive vibration before a running interval starts. Decreasing vibration when an interval ends. Rhythmic vibrations during recovery to help regulate breathing. The goal isn't simply to notify the user—it is to reduce the need to constantly look at the display and allow them to stay focused on the workout. Since Apple Intelligence is becoming a system-wide capability, I think workouts could be understood just like calendar events, reminders or emails. I have already submitted this proposal through Feedback Assistant, but I would love to hear what other developers think. Would this be a feature you would like to see in watchOS? I'm curious to hear how other developers would improve this concept.
Replies
0
Boosts
0
Views
1k
Activity
Jul ’26
watchOS 27 Developer Beta: App Switcher no longer accessible via double-press of Digital Crown
Hello, I updated my Apple Watch SE 3 (GPS + Cellular, 44 mm) to watchOS 27 Developer Beta (Build 24R5289n) and noticed what appears to be a change in the Digital Crown behavior. After the update: • A single press of the Digital Crown now shows fewer applications, which seems consistent with the changes announced for watchOS 27. • However, a double press of the Digital Crown no longer opens the App Switcher as it did previously. • As a result, I can no longer access the interface that allowed users to view recent apps and force-close applications by swiping them away. Before updating, double-pressing the Digital Crown opened the App Switcher and provided a way to close running apps. That functionality now appears to be missing. I would like to know whether: This is an intentional design change in watchOS 27. This is a known issue in the current Developer Beta. There is a new gesture or workflow for accessing recent apps and force-closing applications. Device: Apple Watch SE 3 (GPS + Cellular) 44 mm Aluminum Model: MEPJ4LW/A Software: watchOS 27.0 Developer Beta Build: 24R5289n The behavior is reproducible after restarting the watch. Thanks.
Replies
2
Boosts
9
Views
3.1k
Activity
Jun ’26
URLSession on watchOS never fails over to watch's own Wi-Fi when paired iPhone has Bluetooth but no internet (-1200)
We develop a healthcare emergency-alerting app with a native watchOS companion app. We've hit a network routing issue on watchOS that we cannot work around with any public API, and it breaks a safety-critical flow (triggering an emergency alarm from the watch). Environment watchOS 26.5 on Apple Watch SE3, paired with iPhone SE 2nd Gen on iOS 26.5 Watch app deployment target: watchOS 9.0 Plain URLSession (async/await), default configuration plus waitsForConnectivity = false, allowsExpensiveNetworkAccess = true, allowsConstrainedNetworkAccess = true HTTPS to our own backend (valid public TLS certificate, no pinning) Steps to reproduce Pair the watch with the iPhone. Both on the same known Wi-Fi network. On the iPhone: turn OFF Wi-Fi and cellular data. Keep Bluetooth ON. The watch remains connected to its known Wi-Fi network (or would be, if the system brought the radio up). Trigger any HTTPS request from the watch app (foreground). Expected Since the companion iPhone has no internet, the watch should satisfy the request over its own Wi-Fi. Actual The request is routed through the companion link (ipsec1, "companion preference: prefer" in the logs) and fails after the TLS handshake dies inside the tunnel: Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9816 (errSSLClosedNoNotify) The watch never fails over to its own Wi-Fi, no matter how many times we retry or how long we wait. The same request succeeds within seconds if the user disables Bluetooth on the iPhone (watch then joins Wi-Fi directly), or restores the iPhone's internet. What we already tried waitsForConnectivity = true doesn't help; a path exists (the tunnel), it just doesn't work. Fresh URLSession per retry, backoff retries still routed via the tunnel. Per TN3135 we understand low-level networking is not available to a normal app: we prototyped NWConnection with prohibitedInterfaceTypes = [.other], and indeed on device NWPathMonitor stays .unsatisfied even when the watch has working Wi-Fi, exactly as TN3135 describes. So Network framework is not an escape hatch for us, and we are not looking to abuse the audio-streaming/CallKit carve-outs. Questions Is the companion-preferred routing supposed to fail over to the watch's own Wi-Fi when the iPhone is reachable over Bluetooth but has no internet? If yes, on what timescale, and is there anything an app can do to help the system notice the dead path sooner? Is there ANY supported way for a foreground watchOS app to express "do not use the companion link for this request"? We found only the private _companionProxyPreference SPI, which we obviously can't ship. If the answer to both is "no", what is the recommended pattern for safety-critical requests in this state is failing fast and instructing the user to disable iPhone Bluetooth really the intended UX? Related earlier reports of the same behavior: https://developer.apple.com/forums/thread/759321 https://developer.apple.com/forums/thread/107964
Replies
2
Boosts
1
Views
1.5k
Activity
Jun ’26
Why does a watchOS HKLiveWorkoutBuilder soccer workout report shorter totalDistance than Apple Workout soccer?
I’m developing a watchOS app that records outdoor soccer workouts using HealthKit. My app starts a workout session with: HKWorkoutConfiguration.activityType = .soccer HKWorkoutConfiguration.locationType = .outdoor HKWorkoutSession HKLiveWorkoutBuilder HKLiveWorkoutDataSource During the workout, I display distance from the live builder statistics: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning) After the workout ends, I save the workout using finishWorkout(), and later read the saved distance from: HKWorkout.totalDistance?.doubleValue(for: .meter()) So the total distance shown in my app is not calculated manually from GPS route points. It comes from HealthKit’s workout distance. I noticed a difference between soccer workouts recorded by Apple’s built-in Workout app and soccer workouts recorded by my third-party watchOS app. Example comparison: Apple Workout app soccer: Active duration: about 88 min Steps: about 8,832 Distance: about 6.7 km No visible route/location data in Fitness My watchOS app soccer: Active duration: about 87 min Steps: about 8,998 Distance: about 5.6 km Includes route/location data Workout recorded through HKWorkoutSession + HKLiveWorkoutBuilder Distance read from HKWorkout.totalDistance The step counts and active durations are very close, but the distance differs by about 1.1 km. One important detail is that the Apple Workout app soccer workout does not appear to include visible route/location data in Fitness, while my third-party workout does include route/location data. Despite that, the Apple Workout app reports a longer distance. So the comparison is not simply “GPS route distance vs GPS route distance”. It looks like the built-in Workout app may be estimating soccer distance without exposing route data, while HKLiveWorkoutBuilder for a third-party .soccer workout may be producing a different totalDistance estimate. My questions are: When the built-in Apple Workout app records an outdoor soccer workout without exposing route data, how is totalDistance estimated? Is that distance estimation behavior available to third-party watchOS apps using HKWorkoutSession + HKLiveWorkoutBuilder with .soccer? If a third-party app records route data for the same soccer activity, can that change how HealthKit calculates totalDistance compared with a no-route built-in Workout app recording? For third-party soccer workouts, should developers expect HKWorkout.totalDistance to match the built-in Workout app, or is a difference expected? Is there any additional configuration, entitlement, data type, or best practice required to get more accurate distance estimates for soccer workouts? Any clarification on the expected behavior would be very helpful. Thanks!
Replies
0
Boosts
1
Views
851
Activity
Jun ’26
The iOS project runs via Xcode, but the watch app cannot be installed on the watch, showing the message "This app could not be installed at this time. Could not install at this time." However, the build distributed through TestFlight installs normall
When running a mobile app through Xcode, why can't the associated watch app be installed within the watch app? How can this problem be solved?
Replies
2
Boosts
0
Views
508
Activity
Jun ’26
FoundationModels Framework on watchOS 27 Beta 2
When importing FoundationModels in watchOS 27 Beta 2 this error appears: /Applications/Xcode-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/FoundationModels.framework/Modules/FoundationModels.swiftmodule/arm64e-apple-watchos.swiftinterface:6:15 Unable to resolve module dependency: 'CoreImage' Does anybody else have this issue?
Replies
1
Boosts
0
Views
767
Activity
Jun ’26
XCode 26.5: cannot Copy shared cache symbols from Apple Watch
The process of copying shared cache symbols from my Apple Watch has been horrendous. I cannot even get past 2% complete before this process fails. Every device is on the same network. I have trusted my machine. Developer mode is enabled on the watch. I have successfully paired the phone and watch. I managed to install an Watch app onto the watch. But the shared cache symbols were never copied from the watch. I gathered several commands at the terminal to help me. rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Developer/CoreDevice sudo killall -9 remoted CoreDeviceService 2>/dev/null || true xcrun devicectl manage ddis update xcrun devicectl list devices Clear CoreDevice state. With Xcode quit: rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode Reset Xcode's Local Network permission. tccutil reset Local-Network com.apple.dt.Xcode tccutil reset Bluetooth com.apple.dt.Xcode xcrun devicectl device info hardware --device MY_DEVICE_ID xcrun devicectl list devices ping -c 3 MY_IP_ADDRESS Confirm no VPN/proxy/filter is lurking scutil --nwi ifconfig | grep -E "utun|ipsec|tap|tun" xcrun devicectl device info details --device MY_DEVICE_ID xcrun devicectl manage pair --device MY_DEVICE_ID I keep obtain this type of error: Unable to copy shared cache files Domain: com.apple.dt.deviceprep Code: -33 User Info: { DVTErrorCreationDateKey = "2026-05-20 23:41:00 +0000"; NSLocalizedRecoverySuggestion = ""; "com.apple.dt.DVTCoreDevice.operationName" = dtfetchsymbols; } -- The operation couldn’t be completed. No route to host Domain: NSPOSIXErrorDomain Code: 65 Failure Reason: No route to host -- System Information macOS Version 26.5 (Build 25F71) Xcode 26.5 (24943) (Build 17F42) Timestamp: 2026-05-20T16:41:00-07:00 Does anyone have ideas to help me overcome this nightmare?
Replies
4
Boosts
1
Views
1.3k
Activity
Jun ’26
Recommended way to track watchOS complication install/remove events for analytics?
We ship WidgetKit complications (StaticConfiguration, TimelineProvider) in a companion iOS + watchOS app and want to send Adobe Analytics when users add, remove, or switch complication kinds/families on their watch face. From the widget extension we only see timeline refreshes via getTimeline, which seems too noisy and unrelated to user intent to use for lifecycle tracking. On iOS we diff WidgetCenter.shared.currentConfigurations() at app launch against persisted state—is that also Apple’s recommended pattern on watchOS, or is there a supported callback we’re missing? How should this work for a companion app (watch collects and relays via WatchConnectivity vs. tracking from the iPhone Watch app) versus a standalone watch app where third-party analytics may only run on-device? We’re especially unsure how reliably removal is detected if the watch app doesn’t launch again after a complication is removed.
Replies
0
Boosts
0
Views
777
Activity
Jun ’26
Feature Request: Supporting alternate app icons on watchOS for brand uniformity
With the recent introduction of the unified asset pipeline and Icon Composer, managing cross-platform icon designs has become incredibly efficient. However, there is still a significant platform disparity when it comes to maintaining visual consistency and brand uniformity across paired devices. On iOS, we can dynamically change the app icon at runtime using the setAlternateIconName API. Currently, watchOS completely lacks an equivalent mechanism. If a user selects an alternative icon inside an iOS companion app, the paired Apple Watch app icon remains locked to the default primary asset. This creates a disjointed experience and directly impacts user recognition. The watchOS home screen relies entirely on instant visual cues. If a user changes their iPhone icon to a custom colorway, they instinctively look for that same colorway on their wrist. Leaving the watch icon unchanged makes it harder to quickly locate the app. I have submitted an enhancement request via Feedback Assistant to bring alternate app icon support to watchOS, ideally through an automatic system-level sync within the unified .icon pipeline, or via a native watchOS runtime API. If your app utilizes alternate icons and you would like to see this cross-device continuity brought to watchOS, please consider filing your own duplicate request to help bring visibility to this gap. Filed Feedback: FB23080617
Replies
0
Boosts
0
Views
417
Activity
Jun ’26
Best practices for speeding up watchOS physical device debugging loops in Xcode?
What are the best practices for a painless physical watchOS debugging loop in Xcode? Debugging a standalone or companion watchOS app on a physical Apple Watch is arguably the slowest feedback loop in Apple development. Every minor code change often results in Xcode getting stuck on "Installing to Apple Watch" for minutes, or throwing a "Failed to attach" LLDB error after a long timeout. The biggest bottlenecks seem to be: The initial Symbol Copying / dyld shared cache sync: This takes forever whenever watchOS gets updated. Can these symbols be pre-cached or manually downloaded on the Mac via an internet connection rather than pulling them byte-by-byte from the watch? Slow Installation over Bluetooth: The watch often defaults to a sluggish Bluetooth link with the iPhone instead of leveraging local Wi-Fi or the direct Mac-to-Watch network tunnel. Debugger Connection Timeouts: Xcode routinely loses track of the target process before the app finishes launching on the watch. My Question: What are your recommended workflows, hidden Xcode flags, build settings, or networking setups to make physical watchOS debugging as close to the simulator experience as possible? Specifically, how do we handle symbol caching and force faster deployment pipelines?
Replies
0
Boosts
1
Views
590
Activity
Jun ’26
SceneKit shader compile and cache issues? :(
I'm making an apple watch game and it's running so smooth and nice while developing but I ran into a showstopping problem that I wouldn't even have noticed until i deleted the app and reinstalled... Every first-run on a freshly installed copy of the game has major frame hitches as it loads assets. Every run after that has ZERO hitches and runs like butter. Even if i install a new version on top of the old one (which is why i never noticed this problem in my almost finished game) it runs smooth. Framerate issues come back if I delete and reinstall. I think it's compiling shaders or caching geometry but I haven't been able to trick it into doing the hard work during non-critical moments in the game. I've tried preloading assets in the main menu, loading at the start of the level, loading and rendering in a tiny part of the screen, rendering behind dialog boxes... it seems no matter what i can only get rid of the frame hitches after the game has been played through once... and I'm going to lose all customers on that first terrible impression even though the game is actually really good and fun when it's running properly... Any suggestions how i can prewarm/precompile the assets to avoid framerate hitches and freezes during gameplay? I thought I was so close to release but I feel this is un-shippable! I can send a link to my test flight build to anyone that wants to see the problem first hand. Also please note that I am artist-forward with a technical lean, but certainly not a real programmer, unfortunately. Jiovanie
Replies
2
Boosts
0
Views
1.3k
Activity
Jun ’26