watchOS is the operating system for Apple Watch.

Posts under watchOS tag

200 Posts

Post

Replies

Boosts

Views

Activity

SPM packages fail for watchOS Xcode 27
Xcode 27 refuses to build common Swift Packages for watchOS, such as swift-algorithms or swift-collections. ... 'WATCHOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 27.0.x. The error disappears by explicitly declaring in the SPM manifest "platforms: [.watchOS(.v9)]". (Patching the "SwiftStdlib" availabilities in swift-collections is insufficient.) Is there a better workaround than mirroring our whole SPM graph to declare the platform minimum? Our projects' minimums are correctly set at 11 or 26. (Also happens in the hello world Xcode 27 watchOS only project.) FB23037701 ref: https://developer.apple.com/forums/thread/829540
2
3
949
Jun ’26
Health permissions problem with watchOS 10.6.2
In the last few weeks 5 users have reported my workout watch app being unable to read health data despite the permissions being enabled in the iPhone Settings app. This has been a common complaint over the years and is usually fixed by disabling the permissions; rebooting both devices; and then enabling them again. This usually nudges iOS into sending the permissions to watchOS. However that procedure doesn't work for these users, all of whom are using watchOS 10.6.2. They are using various versions of iOS 18 or 26 so it seems to be a problem with that version of watchOS, which users are usually limited to because their hardware won't support anything more up to date. It seems that unpairing and re-pairing the watch can fix the problem but not always. I looked around and it seems that other apps are having the same problem: https://www.reddit.com/r/runna/comments/1rhhs2n/runna_wont_start_an_outdoor_run_on_apple_watch/ Does anyone know a way to fix this? My current advice is to repeatedly unpair / re-pair until it works, which isn't really practical! Thanks in advance.
3
0
1.7k
Jun ’26
How long does Apple Watch keep HealthKit data?
I would like to create an Apple Watch only app that queries data such as blood oxygenation, heart varibility, number of steps, energy consumed, and other data of a similar nature recorded over the past month and performs calculations on them. I read from the HealthKit documentation that Apple Watch synchronizes data with iPhone and periodically deletes older data, and that I can get the date from which the data is available with earliestPermittedSampleDate(). Is there a risk that in general, by making queries to retrieve data up to a month old, the data will no longer be available? I need the app to work properly without needing an iPhone.
5
1
3.2k
Jun ’26
Could not launch app on watchOS downloaded from TestFlight
I have a app that has both mobile and watch versions. Recently some testers report that the watch app could not be launched if the put the app in the background and then resume. And if they kill the app and try to launch again, there is no any response when tapping the app icon. I managed to export some system logs by installing a sysdiagnose profile, and this info looks suspicious
43
5
3.8k
May ’26
Apple Watch Not Showing in Device List
I was having some trouble installing app to test on my Apple Watch (Series 9) so I removed it and thought to re-add it. However, after removing it, it no longer shows under my iPhone for me to add it as a possible run destination. I have tried numerous actions: Restart all devices Repair my watch Use hotspot so everything is on the same network Delete and reinstall Xcode None of these actions seem to be working. Does anyone have a way to get my watch to show up?
1
0
543
May ’26
WatchOS 26.5 breaks Action Button intent donation
For some reason since watchOS 26.5 my workout app can no longer receive action button presses during a workout unless the action button is configured to start a specified activity type. If the action button is configured to just open the app but not start an activity then at the start of a workout the app donates a StartWorkoutIntent. The result parameter is set to a 'NextButtonPress' intent so that the app is notified when the action button is pressed. This has been working fine since the action button first appeared back in 2022, but has suddenly stopped working with watchOS 26.5. Now when the app tries to donate the intent then it fails with the following error: The operation couldn’t be completed. (LNTranscriptErrorDomain error 1003.) Does anyone know what has changed and how I can get around it? Thanks.
2
0
2k
May ’26
Apple Watch Notification Center timestamp drift on notifications processed by a Notification Service Extension
I'm seeing a timestamp display issue on Apple Watch Notification Center, and I'd like to confirm whether this is a known watchOS behavior or whether there's a setup mistake on our side. Symptom The same APNs notification displays the correct time on iPhone Notification Center and on the initial Apple Watch banner. After the Watch screen turns off and the user later opens Notification Center on Apple Watch, the same notification may show an incorrect relative timestamp such as "3 hours ago" or even "yesterday". The drift is per-notification and persists for that notification until it's dismissed. iPhone NC always shows the correct time. WhatsApp tested side-by-side on the same iPhone/Watch pair does not show this drift. Setup iOS 26.4.2 on iPhone 16 Pro watchOS 26.4 on Apple Watch Series 10 App with paired Apple Watch A UNNotificationServiceExtension that decrypts E2EE message previews and applies Communication Notification enrichment via INSendMessageIntent and content.updating(from:) Production APNs environment, TestFlight builds No beta software Isolation tests already performed Test mutable-content NSE invoked Drift on Watch NC Minimal APNs (alert + sound only) no no no drift NSE skips content.updating(from:), INInteraction.donate/delete (still calls them as no-op via diagnostic build) yes yes — modifies content drift NSE bypasses ALL Intents/Communication Notification APIs (no INPerson, no INSendMessageIntent, no avatar, no updating(from:)); just modifies title/body/sound/category and returns the mutable copy yes yes — modifies content drift Production-like APNs payload (thread-id, target-content-id, category, sound, badge, custom userInfo) but WITHOUT mutable-content no no no drift Eliminated as causes: content.updating(from:), INSendMessageIntent, INInteraction.donate, INInteraction.delete(with:), INPerson/INPersonHandle (not even constructed in test 3), avatar fetching, thread-id, target-content-id, category, sound, badge, custom userInfo, custom createdAt timestamp, stale Siri/Apple Intelligence history (cleared manually on iPhone and Watch). The pattern The only consistent variable distinguishing the no-drift cases from the drift cases is whether mutable-content: 1 is set on the APNs payload (i.e. whether the UNNotificationServiceExtension is invoked). Once invoked, the extension's behavior with respect to Communication Notifications does not seem to affect the outcome — the drift reproduces even when the NSE only modifies title/body/sound and returns. Questions Is there a known watchOS behavior where notifications processed by a UNNotificationServiceExtension use a different timestamp source on Apple Watch Notification Center after the Watch screen has been turned off and reopened, while the initial Watch banner and iPhone Notification Center show the correct delivery time? Are there specific UNMutableNotificationContent properties or APNs payload flags that should be preserved (or avoided) when returning content from an NSE to keep the Watch NC timestamp consistent with the delivery time? For E2EE messaging apps, is there a recommended pattern to decrypt and return content from an NSE that avoids this drift on watchOS? Happy to provide an anonymized snippet of NotificationService.swift and the APNs payload format if useful. Thanks.
7
0
1.8k
May ’26
Switch view that digital crown controls
I wonder if there is way to switch the view that the digital crown controls. Like if have a list and a vertical tab view, when the tab displays, I want the crown control the scrolling in the tab. I dont want to use sheet, cause I have some special UX design, and also dont want to use if else to toggle between the two views. I have tried with resetFocus and other focus related functions, not working
1
0
603
May ’26
MCRestrictionsPayload (allowListedAppBundleIDs) breaks Apple Watch native app enumeration — `nanotimekitcompaniond` reports "Missing .app from directory: /Watch/"
forum-post-v2-evidence.log MCRestrictionsPayload (allowListedAppBundleIDs) breaks Apple Watch app enumeration — nanotimekitcompaniond reports "Missing .app from directory: /Watch/" Summary Installing a Configuration Profile with com.apple.applicationaccess payload containing allowListedAppBundleIDs causes native Apple Watch apps to disappear from the paired Watch — even when their bundle IDs are explicitly in the whitelist. Log analysis shows this is not a bundle ID matching problem: nanotimekitcompaniond on the iPhone fails to enumerate the <companion>.app/Watch/ subdirectories where native watchOS app stubs live. Follow-up to https://developer.apple.com/forums/thread/745585 — community-confirmed but received no official response. Environment iPhone 16 (iPhone17,3), iOS 26.4.2 (23E261), supervised Apple Watch paired via Bridge.app Profile installed locally via Apple Configurator (no MDM server required) Smoking gun Within ~5 seconds of profile install, two processes (nanotimekitcompaniond and NTKFaceSnapshotService) log identical errors for eight companion-app paths: nanotimekitcompaniond[1498] <Error>: Missing .app from directory: file:///Applications/MobilePhone.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../Calculator.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../Bridge.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../MobileTimer.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../Camera.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../VoiceMemos.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../MobileMail.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../FindMy.app/Watch/ NTKFaceSnapshotService[3758] <Error>: Missing .app from directory: <same 8 paths> The Watch's app icons and face complications both go through these processes, which explains the symptoms users see. iOS itself flags the payload as Watch-incompatible — but applies it anyway profiled[179] <Notice>: Payload class MCRestrictionsPayload (com.apple.applicationaccess) is not supported on any Watch version profiled[179] <Notice>: Payload class MCRestrictionsPayload (com.apple.applicationaccess) is not available on HomePod profiled[179] <Notice>: Beginning profile installation... profiled[179] <Notice>: Profile "...v2..." installed. So profiled knows the payload doesn't target watchOS — yet its side effects clearly manifest there. Tests performed Test Bundle IDs in whitelist Result v1 249 (every installed iOS app: Apple + 3rd party) Walkie-Talkie, Messages, Find My + more disappear from Watch v2 295 (v1 + every Apple extension/Nano* daemon seen in syslog: *.MessagesActionExtension, *.FindMyNotifications*Extension, *.FindMyWidget*, com.apple.NanoBackup, com.apple.NanoMusicSync, com.apple.NanoPreferencesSync, com.apple.NanoTimeKit.face, com.apple.NanoUniverse.AegirProxyApp, com.apple.tursd, com.apple.FaceTime.FTConversationService, com.apple.Bridge.GreenfieldThumbnailExtension, etc.) Identical Missing-.app errors. Same apps disappear. Conclusion: this is not a bundle ID matching issue — adding more IDs doesn't help. The system fails to enumerate <companion-iOS-app>.app/Watch/ regardless of whitelist contents. Many users in my prior thread reported trying 100+ bundle ID combinations without success; this evidence explains why. Reproduction (no MDM required) Pair Apple Watch with iPhone normally. Generate a Configuration Profile with com.apple.applicationaccess + any non-empty allowListedAppBundleIDs array. Install via Apple Configurator's cfgutil install-profile, or AirDrop + Settings → Install. Within ~5 s, nanotimekitcompaniond errors appear (visible via idevicesyslog). Native Watch apps backed by an iOS companion stub disappear from the Watch's app grid and from face complications. Hypothesis MCRestrictionsPayload applies an enumeration filter that does not descend into .app/Watch/ subdirectories when computing visible apps. nanotimekitcompaniond consequently sees those directories as missing, the Watch's Carousel (SpringBoard equivalent) hides the apps, and NTKFaceSnapshotService can't load corresponding complications. Because profiled itself logs the payload as "not supported on any Watch version", this appears to be unintended bleed-through. Questions for Apple Is MCRestrictionsPayload / allowListedAppBundleIDs officially supposed to affect Apple Watch apps? profiled says no. Is there an undocumented bundle ID pattern (e.g. <companion>.watchapp, or a Bridge.app/Watch/ prefix) that needs whitelisting to keep native Watch apps visible? Is the recommended workaround to use blacklistedAppBundleIDs instead? Should the enumeration error (Missing .app from directory: .../Watch/) be tracked as a separate watchOS framework bug? Artifacts Curated evidence log with timestamps, profile installer events, and the eight Missing-.app errors is attached as forum-post-v2-evidence.log. Full idevicesyslog captures (multiple install/remove cycles, ~2M log lines) and the .mobileconfig files are available on request. Thanks — looking forward to guidance.
3
0
2k
May ’26
Localization doesn't work in watchOS widget configuration intent
Hi, I have a problem with watchOS widget configuration intents. It turns out that watchOS is unable to load text for localization keys. This is how I set configuration parameter in WidgetConfigurationIntent: @Parameter( title: LocalizedStringResource( "watchWidgetConfig.showSymbols", defaultValue: "Symbole", table: "WidgetLocalizable", bundle: widgetBundle ), default: true ) var showSymbols: Bool Unfortunately, on a device always the defaultValue is used. I tried everything and nothing works. What's weird, it correctly works on watchOS simulator and if you configure widgets in iOS "Watch" app. On real Apple Watch, the "defaultValue" is displayed. I'm not sure if it's important but both: the Swift file with WidgetConfigurationIntent and WidgetLocalizable.xcstring are included in two targets: Watch Widget Extension and Watch App. I tried so far: All variants of LocalizableStringResource init. With/without "table", with/without "bundle". Previously I had texts in Localizable.strings, I migrated it to WidgetLocalizable.xcstrings and it didn't work either. Setting only one target for WidgetLocalizable.xcstring and WidgetConfigurationIntent. I checked inside xcarchive to see if WidgetLocalizable.xcstring is copied correctly. Seems like watchOS bug, but I would be happy to know if someone figured out any workaround. Xcode: Version 26.4 (17E192) iOS 26.4.1 watchOS 26.4 I already created a ticket: FB22509406
7
0
1.4k
May ’26
Xcode Cloud with watchOS
When I chose a watchOS Test and set the watch with latest watchOS on Xcode Cloud, I could not pass the CI because it showed "xcodebuild: error: Unable to find a destination matching the provided destination specifier: { platform:watchOS Simulator, id:9863C79E-3793-483E-BAA1-F96A0BD34005 }" I've change some destination, but it's not worked. Is there any idea what I can do? The watch app is along with the mobile, not standalone.
1
0
833
May ’26
Apple Watch Privacy & Security menu prompts for Screen Time passcode only during Xcode device connection attempts
On watchOS, the Developer Mode entry under Settings -> Privacy & Security is hidden by default and only appears after Xcode has attempted to connect to the watch as a development device. In my case, once Xcode triggers that surfacing, opening Settings -> Privacy & Security on the watch prompts for a 4-digit Screen Time passcode before granting access. No Screen Time passcode I set on the paired iPhone is accepted at this prompt, which prevents me from reaching the Developer Mode toggle to enable it. The passcode prompt only appears in this specific state. With no Xcode connection attempt (and therefore no Developer Mode entry surfaced in the menu), Settings → Privacy & Security opens normally on the watch with no prompt at all. Environment macOS: Tahoe 26.4.1 (Build 25E253) Xcode: 26.4.1 (24909.0.3) (Build 17E202) iPhone: iOS 26.4.2 Apple Watch: Ultra 3 running watchOS 26.4 All devices on release software (no betas). Xcode error Developer Mode disabled Domain: com.apple.dt.deviceprep Code: -28 Recovery Suggestion: To use [Watch Name] for development, enable Developer Mode in Settings → Privacy & Security. User Info: { DVTErrorCreationDateKey = "2026-04-30 09:38:57 +0000"; "com.apple.dt.DVTCoreDevice.operationName" = checkDeveloperMode; } Reproduction Pair Apple Watch to iPhone (paired fresh, set up as new, not restored from backup). Connect iPhone to Mac running Xcode 26.4.1. Before any Xcode connection attempt, open Settings -> Privacy & Security on the watch. The menu opens normally with no passcode prompt. There is no Developer Mode entry visible. In Xcode, attempt to use the Apple Watch as a run destination. Xcode returns the -28 / Developer Mode disabled error above and instructs me to enable Developer Mode in Settings -> Privacy & Security on the watch. After this attempt, the Developer Mode entry is surfaced in Settings -> Privacy & Security on the watch. Open Settings -> Privacy & Security on the watch in this surfaced state. The menu now prompts for a 4-digit Screen Time passcode before allowing access. The passcodes I have set on the paired iPhone are rejected. The passcode prompt is therefore conditional on the Developer Mode entry having been surfaced by a recent Xcode connection attempt. In step 3 (no surfacing) the menu opens freely; in step 6 (surfacing in effect) the menu is gated. What I have already tried Confirmed Screen Time is disabled on the paired iPhone. Confirmed Share Across Devices is enabled. Confirmed Content & Privacy Restrictions is off on the iPhone. Confirmed I am an adult in my Family Sharing group (not a managed/child account). Confirmed there are no configuration profiles installed (Settings -> General -> VPN & Device Management is empty). Set a fresh Screen Time passcode on the iPhone. Not accepted by the watch prompt. Used Forgot Passcode? → Apple ID authentication to reset the Screen Time passcode and set a new one. Not accepted by the watch prompt. Turned the Screen Time passcode off entirely on the iPhone. The watch still prompts for one when Xcode is connecting. Unpaired the Apple Watch and re-paired as new (not restored from backup). Issue persists. Tried entering the watch's own device passcode at the prompt. Not accepted. Question What credential is the watch's Privacy & Security menu actually checking against once the Developer Mode entry has been surfaced, and how can it be reset or cleared from a paired iPhone? Is anyone else seeing this conditional gating where the menu is only locked in the post-surfacing state? Any pointers from the Xcode / watchOS tools team would be appreciated. Happy to provide sysdiagnose or further details on request.
0
0
1k
Apr ’26
Apple Watch companion app keeps uninstalling
Hello, I’m developing an Apple Watch companion app for my swimming application and the app keeps uninstalling/disappearing from Apple Watch. I have a specific Scheme to install it to my watches, it appears there, I can debug but after a while it disappears. It’s my first app for this device but it doesn’t seem normal to me. any idea?
1
0
440
Apr ’26
Apple Watch co-sysdiagnose not generated in Family Setup / managed account scenario
Hi everyone, I’m currently researching Apple Watch pairing behavior and diagnostic logging across different setup modes. I can reliably trigger a co-sysdiagnose on an Apple Watch when it is paired in a normal standalone / standard configuration. In that case, the expected co-sysdiagnose archive appears on the paired iPhone. However, in a Family Setup / managed account scenario, behavior is different: The watch provides the expected haptic feedback after the sysdiagnose button combination But no co-sysdiagnose archive appears on the paired iPhone afterward The same hardware behaves differently depending on pairing/account configuration My question is: Is co-sysdiagnose collection, transport, or availability intentionally different for Family Setup / managed Apple Watch devices? For example: Are logs stored elsewhere? Is transfer to the organizer iPhone restricted? Is co-sysdiagnose unsupported in Family Setup mode? Are additional conditions required, such as Wi-Fi, charging state, unlocked devices, or a longer delay? I may be missing something obvious, but I have not found documentation describing this difference. If this is expected behavior, I’d really appreciate a pointer to the relevant documentation. Thanks a lot!
1
0
732
Apr ’26
watchOS VoIP App: Incoming Calls?
Hello! I’m building a VoIP app for iPhone and Apple Watch using PushKit and CallKit. I’m trying to understand the recommended watchOS architecture for this kind of setup. What we would like is for the watch to behave as an endpoint for incoming calls, so that when a call comes in the user can answer on either the iPhone or the watch. My understanding is that VoIP notifications are not supported on watchOS, so for incoming calls what we ended up having to do was send the watch a regular APNs alert notification and only start the actual call setup after the user interacts with it. This isn’t ideal, and the notification often appears a few seconds late. What we would like to be able to do is present the incoming call on the watch more like how FaceTime calls appear on Apple Watch. So I wanted to ask whether this is the intended pattern for a companion watchOS VoIP app. Is using a regular APNs alert notification the correct way to surface an incoming call on the watch, or is there a better supported approach? Thanks!
2
0
1.6k
Apr ’26
Audio cues not working when app is in the background
I have a iOS/watchOS app that gives audio cues, like a metronome, on specific patterns. The intent of the watch app is to have it at the same time as a workout app (ie Strava, Apple Fitness) and/or a music app (Spotify/Apple Music). The app works in the foreground just fine. But if I start another app (i.e. Strava) the haptic feedback and a "ding" continues to play in the background, but the "beep or voice" stops. Beep/voice works fine in iOS when in the background, just not in watchOS.
6
0
1.3k
Apr ’26
Paired Watch not appearing in Xcode
I managed to install watchOS 2 without having registered my Watch's UDID, but as it's part of the instructions for installing watchOS betas I thought I'd better do it now in case beta 2 bricks my Watch or something.However, the Watch isn't appearing in Xcode. I've tried both the latest public release and Xcode 7 beta, but there's "no paired devices" section under my iPhone when I connect it to Xcode and look in the Devices window.
9
2
11k
Apr ’26
Availability for BLE background scanning on watchOS whilst dimmed
I am trying to find out about the availability of BLE scanning for advertisements when a watchOS app (on watchOS 26.4 with CoreBluetooth) which starts running a HKWorkoutSession becomes dimmed, ie. due to the user lowering their arm. From my understanding there is still availability for ongoing scanning whilst in the dimmed mode. If this is correct, what settings are required (e.g. using background capability for 'Workout Processing', 'bluetooth-central', etc), and does scanning whilst in background mode limit to requiring service uuids in scanForPeripherals? Also if scanning is throttled, is there an 'estimated' inter scan time? Thanks
1
0
813
Apr ’26
SPM packages fail for watchOS Xcode 27
Xcode 27 refuses to build common Swift Packages for watchOS, such as swift-algorithms or swift-collections. ... 'WATCHOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 27.0.x. The error disappears by explicitly declaring in the SPM manifest "platforms: [.watchOS(.v9)]". (Patching the "SwiftStdlib" availabilities in swift-collections is insufficient.) Is there a better workaround than mirroring our whole SPM graph to declare the platform minimum? Our projects' minimums are correctly set at 11 or 26. (Also happens in the hello world Xcode 27 watchOS only project.) FB23037701 ref: https://developer.apple.com/forums/thread/829540
Replies
2
Boosts
3
Views
949
Activity
Jun ’26
Health permissions problem with watchOS 10.6.2
In the last few weeks 5 users have reported my workout watch app being unable to read health data despite the permissions being enabled in the iPhone Settings app. This has been a common complaint over the years and is usually fixed by disabling the permissions; rebooting both devices; and then enabling them again. This usually nudges iOS into sending the permissions to watchOS. However that procedure doesn't work for these users, all of whom are using watchOS 10.6.2. They are using various versions of iOS 18 or 26 so it seems to be a problem with that version of watchOS, which users are usually limited to because their hardware won't support anything more up to date. It seems that unpairing and re-pairing the watch can fix the problem but not always. I looked around and it seems that other apps are having the same problem: https://www.reddit.com/r/runna/comments/1rhhs2n/runna_wont_start_an_outdoor_run_on_apple_watch/ Does anyone know a way to fix this? My current advice is to repeatedly unpair / re-pair until it works, which isn't really practical! Thanks in advance.
Replies
3
Boosts
0
Views
1.7k
Activity
Jun ’26
How long does Apple Watch keep HealthKit data?
I would like to create an Apple Watch only app that queries data such as blood oxygenation, heart varibility, number of steps, energy consumed, and other data of a similar nature recorded over the past month and performs calculations on them. I read from the HealthKit documentation that Apple Watch synchronizes data with iPhone and periodically deletes older data, and that I can get the date from which the data is available with earliestPermittedSampleDate(). Is there a risk that in general, by making queries to retrieve data up to a month old, the data will no longer be available? I need the app to work properly without needing an iPhone.
Replies
5
Boosts
1
Views
3.2k
Activity
Jun ’26
Could not launch app on watchOS downloaded from TestFlight
I have a app that has both mobile and watch versions. Recently some testers report that the watch app could not be launched if the put the app in the background and then resume. And if they kill the app and try to launch again, there is no any response when tapping the app icon. I managed to export some system logs by installing a sysdiagnose profile, and this info looks suspicious
Replies
43
Boosts
5
Views
3.8k
Activity
May ’26
Apple Watch Not Showing in Device List
I was having some trouble installing app to test on my Apple Watch (Series 9) so I removed it and thought to re-add it. However, after removing it, it no longer shows under my iPhone for me to add it as a possible run destination. I have tried numerous actions: Restart all devices Repair my watch Use hotspot so everything is on the same network Delete and reinstall Xcode None of these actions seem to be working. Does anyone have a way to get my watch to show up?
Replies
1
Boosts
0
Views
543
Activity
May ’26
WatchOS 26.5 breaks Action Button intent donation
For some reason since watchOS 26.5 my workout app can no longer receive action button presses during a workout unless the action button is configured to start a specified activity type. If the action button is configured to just open the app but not start an activity then at the start of a workout the app donates a StartWorkoutIntent. The result parameter is set to a 'NextButtonPress' intent so that the app is notified when the action button is pressed. This has been working fine since the action button first appeared back in 2022, but has suddenly stopped working with watchOS 26.5. Now when the app tries to donate the intent then it fails with the following error: The operation couldn’t be completed. (LNTranscriptErrorDomain error 1003.) Does anyone know what has changed and how I can get around it? Thanks.
Replies
2
Boosts
0
Views
2k
Activity
May ’26
Apple Watch Notification Center timestamp drift on notifications processed by a Notification Service Extension
I'm seeing a timestamp display issue on Apple Watch Notification Center, and I'd like to confirm whether this is a known watchOS behavior or whether there's a setup mistake on our side. Symptom The same APNs notification displays the correct time on iPhone Notification Center and on the initial Apple Watch banner. After the Watch screen turns off and the user later opens Notification Center on Apple Watch, the same notification may show an incorrect relative timestamp such as "3 hours ago" or even "yesterday". The drift is per-notification and persists for that notification until it's dismissed. iPhone NC always shows the correct time. WhatsApp tested side-by-side on the same iPhone/Watch pair does not show this drift. Setup iOS 26.4.2 on iPhone 16 Pro watchOS 26.4 on Apple Watch Series 10 App with paired Apple Watch A UNNotificationServiceExtension that decrypts E2EE message previews and applies Communication Notification enrichment via INSendMessageIntent and content.updating(from:) Production APNs environment, TestFlight builds No beta software Isolation tests already performed Test mutable-content NSE invoked Drift on Watch NC Minimal APNs (alert + sound only) no no no drift NSE skips content.updating(from:), INInteraction.donate/delete (still calls them as no-op via diagnostic build) yes yes — modifies content drift NSE bypasses ALL Intents/Communication Notification APIs (no INPerson, no INSendMessageIntent, no avatar, no updating(from:)); just modifies title/body/sound/category and returns the mutable copy yes yes — modifies content drift Production-like APNs payload (thread-id, target-content-id, category, sound, badge, custom userInfo) but WITHOUT mutable-content no no no drift Eliminated as causes: content.updating(from:), INSendMessageIntent, INInteraction.donate, INInteraction.delete(with:), INPerson/INPersonHandle (not even constructed in test 3), avatar fetching, thread-id, target-content-id, category, sound, badge, custom userInfo, custom createdAt timestamp, stale Siri/Apple Intelligence history (cleared manually on iPhone and Watch). The pattern The only consistent variable distinguishing the no-drift cases from the drift cases is whether mutable-content: 1 is set on the APNs payload (i.e. whether the UNNotificationServiceExtension is invoked). Once invoked, the extension's behavior with respect to Communication Notifications does not seem to affect the outcome — the drift reproduces even when the NSE only modifies title/body/sound and returns. Questions Is there a known watchOS behavior where notifications processed by a UNNotificationServiceExtension use a different timestamp source on Apple Watch Notification Center after the Watch screen has been turned off and reopened, while the initial Watch banner and iPhone Notification Center show the correct delivery time? Are there specific UNMutableNotificationContent properties or APNs payload flags that should be preserved (or avoided) when returning content from an NSE to keep the Watch NC timestamp consistent with the delivery time? For E2EE messaging apps, is there a recommended pattern to decrypt and return content from an NSE that avoids this drift on watchOS? Happy to provide an anonymized snippet of NotificationService.swift and the APNs payload format if useful. Thanks.
Replies
7
Boosts
0
Views
1.8k
Activity
May ’26
Switch view that digital crown controls
I wonder if there is way to switch the view that the digital crown controls. Like if have a list and a vertical tab view, when the tab displays, I want the crown control the scrolling in the tab. I dont want to use sheet, cause I have some special UX design, and also dont want to use if else to toggle between the two views. I have tried with resetFocus and other focus related functions, not working
Replies
1
Boosts
0
Views
603
Activity
May ’26
MCRestrictionsPayload (allowListedAppBundleIDs) breaks Apple Watch native app enumeration — `nanotimekitcompaniond` reports "Missing .app from directory: /Watch/"
forum-post-v2-evidence.log MCRestrictionsPayload (allowListedAppBundleIDs) breaks Apple Watch app enumeration — nanotimekitcompaniond reports "Missing .app from directory: /Watch/" Summary Installing a Configuration Profile with com.apple.applicationaccess payload containing allowListedAppBundleIDs causes native Apple Watch apps to disappear from the paired Watch — even when their bundle IDs are explicitly in the whitelist. Log analysis shows this is not a bundle ID matching problem: nanotimekitcompaniond on the iPhone fails to enumerate the <companion>.app/Watch/ subdirectories where native watchOS app stubs live. Follow-up to https://developer.apple.com/forums/thread/745585 — community-confirmed but received no official response. Environment iPhone 16 (iPhone17,3), iOS 26.4.2 (23E261), supervised Apple Watch paired via Bridge.app Profile installed locally via Apple Configurator (no MDM server required) Smoking gun Within ~5 seconds of profile install, two processes (nanotimekitcompaniond and NTKFaceSnapshotService) log identical errors for eight companion-app paths: nanotimekitcompaniond[1498] <Error>: Missing .app from directory: file:///Applications/MobilePhone.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../Calculator.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../Bridge.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../MobileTimer.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../Camera.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../VoiceMemos.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../MobileMail.app/Watch/ nanotimekitcompaniond[1498] <Error>: Missing .app from directory: .../FindMy.app/Watch/ NTKFaceSnapshotService[3758] <Error>: Missing .app from directory: <same 8 paths> The Watch's app icons and face complications both go through these processes, which explains the symptoms users see. iOS itself flags the payload as Watch-incompatible — but applies it anyway profiled[179] <Notice>: Payload class MCRestrictionsPayload (com.apple.applicationaccess) is not supported on any Watch version profiled[179] <Notice>: Payload class MCRestrictionsPayload (com.apple.applicationaccess) is not available on HomePod profiled[179] <Notice>: Beginning profile installation... profiled[179] <Notice>: Profile "...v2..." installed. So profiled knows the payload doesn't target watchOS — yet its side effects clearly manifest there. Tests performed Test Bundle IDs in whitelist Result v1 249 (every installed iOS app: Apple + 3rd party) Walkie-Talkie, Messages, Find My + more disappear from Watch v2 295 (v1 + every Apple extension/Nano* daemon seen in syslog: *.MessagesActionExtension, *.FindMyNotifications*Extension, *.FindMyWidget*, com.apple.NanoBackup, com.apple.NanoMusicSync, com.apple.NanoPreferencesSync, com.apple.NanoTimeKit.face, com.apple.NanoUniverse.AegirProxyApp, com.apple.tursd, com.apple.FaceTime.FTConversationService, com.apple.Bridge.GreenfieldThumbnailExtension, etc.) Identical Missing-.app errors. Same apps disappear. Conclusion: this is not a bundle ID matching issue — adding more IDs doesn't help. The system fails to enumerate <companion-iOS-app>.app/Watch/ regardless of whitelist contents. Many users in my prior thread reported trying 100+ bundle ID combinations without success; this evidence explains why. Reproduction (no MDM required) Pair Apple Watch with iPhone normally. Generate a Configuration Profile with com.apple.applicationaccess + any non-empty allowListedAppBundleIDs array. Install via Apple Configurator's cfgutil install-profile, or AirDrop + Settings → Install. Within ~5 s, nanotimekitcompaniond errors appear (visible via idevicesyslog). Native Watch apps backed by an iOS companion stub disappear from the Watch's app grid and from face complications. Hypothesis MCRestrictionsPayload applies an enumeration filter that does not descend into .app/Watch/ subdirectories when computing visible apps. nanotimekitcompaniond consequently sees those directories as missing, the Watch's Carousel (SpringBoard equivalent) hides the apps, and NTKFaceSnapshotService can't load corresponding complications. Because profiled itself logs the payload as "not supported on any Watch version", this appears to be unintended bleed-through. Questions for Apple Is MCRestrictionsPayload / allowListedAppBundleIDs officially supposed to affect Apple Watch apps? profiled says no. Is there an undocumented bundle ID pattern (e.g. <companion>.watchapp, or a Bridge.app/Watch/ prefix) that needs whitelisting to keep native Watch apps visible? Is the recommended workaround to use blacklistedAppBundleIDs instead? Should the enumeration error (Missing .app from directory: .../Watch/) be tracked as a separate watchOS framework bug? Artifacts Curated evidence log with timestamps, profile installer events, and the eight Missing-.app errors is attached as forum-post-v2-evidence.log. Full idevicesyslog captures (multiple install/remove cycles, ~2M log lines) and the .mobileconfig files are available on request. Thanks — looking forward to guidance.
Replies
3
Boosts
0
Views
2k
Activity
May ’26
Localization doesn't work in watchOS widget configuration intent
Hi, I have a problem with watchOS widget configuration intents. It turns out that watchOS is unable to load text for localization keys. This is how I set configuration parameter in WidgetConfigurationIntent: @Parameter( title: LocalizedStringResource( "watchWidgetConfig.showSymbols", defaultValue: "Symbole", table: "WidgetLocalizable", bundle: widgetBundle ), default: true ) var showSymbols: Bool Unfortunately, on a device always the defaultValue is used. I tried everything and nothing works. What's weird, it correctly works on watchOS simulator and if you configure widgets in iOS "Watch" app. On real Apple Watch, the "defaultValue" is displayed. I'm not sure if it's important but both: the Swift file with WidgetConfigurationIntent and WidgetLocalizable.xcstring are included in two targets: Watch Widget Extension and Watch App. I tried so far: All variants of LocalizableStringResource init. With/without "table", with/without "bundle". Previously I had texts in Localizable.strings, I migrated it to WidgetLocalizable.xcstrings and it didn't work either. Setting only one target for WidgetLocalizable.xcstring and WidgetConfigurationIntent. I checked inside xcarchive to see if WidgetLocalizable.xcstring is copied correctly. Seems like watchOS bug, but I would be happy to know if someone figured out any workaround. Xcode: Version 26.4 (17E192) iOS 26.4.1 watchOS 26.4 I already created a ticket: FB22509406
Replies
7
Boosts
0
Views
1.4k
Activity
May ’26
Xcode Cloud with watchOS
When I chose a watchOS Test and set the watch with latest watchOS on Xcode Cloud, I could not pass the CI because it showed "xcodebuild: error: Unable to find a destination matching the provided destination specifier: { platform:watchOS Simulator, id:9863C79E-3793-483E-BAA1-F96A0BD34005 }" I've change some destination, but it's not worked. Is there any idea what I can do? The watch app is along with the mobile, not standalone.
Replies
1
Boosts
0
Views
833
Activity
May ’26
Apple Watch Privacy & Security menu prompts for Screen Time passcode only during Xcode device connection attempts
On watchOS, the Developer Mode entry under Settings -> Privacy & Security is hidden by default and only appears after Xcode has attempted to connect to the watch as a development device. In my case, once Xcode triggers that surfacing, opening Settings -> Privacy & Security on the watch prompts for a 4-digit Screen Time passcode before granting access. No Screen Time passcode I set on the paired iPhone is accepted at this prompt, which prevents me from reaching the Developer Mode toggle to enable it. The passcode prompt only appears in this specific state. With no Xcode connection attempt (and therefore no Developer Mode entry surfaced in the menu), Settings → Privacy & Security opens normally on the watch with no prompt at all. Environment macOS: Tahoe 26.4.1 (Build 25E253) Xcode: 26.4.1 (24909.0.3) (Build 17E202) iPhone: iOS 26.4.2 Apple Watch: Ultra 3 running watchOS 26.4 All devices on release software (no betas). Xcode error Developer Mode disabled Domain: com.apple.dt.deviceprep Code: -28 Recovery Suggestion: To use [Watch Name] for development, enable Developer Mode in Settings → Privacy & Security. User Info: { DVTErrorCreationDateKey = "2026-04-30 09:38:57 +0000"; "com.apple.dt.DVTCoreDevice.operationName" = checkDeveloperMode; } Reproduction Pair Apple Watch to iPhone (paired fresh, set up as new, not restored from backup). Connect iPhone to Mac running Xcode 26.4.1. Before any Xcode connection attempt, open Settings -> Privacy & Security on the watch. The menu opens normally with no passcode prompt. There is no Developer Mode entry visible. In Xcode, attempt to use the Apple Watch as a run destination. Xcode returns the -28 / Developer Mode disabled error above and instructs me to enable Developer Mode in Settings -> Privacy & Security on the watch. After this attempt, the Developer Mode entry is surfaced in Settings -> Privacy & Security on the watch. Open Settings -> Privacy & Security on the watch in this surfaced state. The menu now prompts for a 4-digit Screen Time passcode before allowing access. The passcodes I have set on the paired iPhone are rejected. The passcode prompt is therefore conditional on the Developer Mode entry having been surfaced by a recent Xcode connection attempt. In step 3 (no surfacing) the menu opens freely; in step 6 (surfacing in effect) the menu is gated. What I have already tried Confirmed Screen Time is disabled on the paired iPhone. Confirmed Share Across Devices is enabled. Confirmed Content & Privacy Restrictions is off on the iPhone. Confirmed I am an adult in my Family Sharing group (not a managed/child account). Confirmed there are no configuration profiles installed (Settings -> General -> VPN & Device Management is empty). Set a fresh Screen Time passcode on the iPhone. Not accepted by the watch prompt. Used Forgot Passcode? → Apple ID authentication to reset the Screen Time passcode and set a new one. Not accepted by the watch prompt. Turned the Screen Time passcode off entirely on the iPhone. The watch still prompts for one when Xcode is connecting. Unpaired the Apple Watch and re-paired as new (not restored from backup). Issue persists. Tried entering the watch's own device passcode at the prompt. Not accepted. Question What credential is the watch's Privacy & Security menu actually checking against once the Developer Mode entry has been surfaced, and how can it be reset or cleared from a paired iPhone? Is anyone else seeing this conditional gating where the menu is only locked in the post-surfacing state? Any pointers from the Xcode / watchOS tools team would be appreciated. Happy to provide sysdiagnose or further details on request.
Replies
0
Boosts
0
Views
1k
Activity
Apr ’26
RN IOS APP & WatchOS Companion
I already have a working iOS React Native app and I’m planning to add a watchOS companion app. Is it possible to keep the iOS app and the watchOS app in separate repositories? If so, will WatchConnectivity still work properly between them? Or is it recommended to keep both in a single Xcode project/repository?
Replies
1
Boosts
0
Views
1.2k
Activity
Apr ’26
Apple Watch companion app keeps uninstalling
Hello, I’m developing an Apple Watch companion app for my swimming application and the app keeps uninstalling/disappearing from Apple Watch. I have a specific Scheme to install it to my watches, it appears there, I can debug but after a while it disappears. It’s my first app for this device but it doesn’t seem normal to me. any idea?
Replies
1
Boosts
0
Views
440
Activity
Apr ’26
Apple Watch co-sysdiagnose not generated in Family Setup / managed account scenario
Hi everyone, I’m currently researching Apple Watch pairing behavior and diagnostic logging across different setup modes. I can reliably trigger a co-sysdiagnose on an Apple Watch when it is paired in a normal standalone / standard configuration. In that case, the expected co-sysdiagnose archive appears on the paired iPhone. However, in a Family Setup / managed account scenario, behavior is different: The watch provides the expected haptic feedback after the sysdiagnose button combination But no co-sysdiagnose archive appears on the paired iPhone afterward The same hardware behaves differently depending on pairing/account configuration My question is: Is co-sysdiagnose collection, transport, or availability intentionally different for Family Setup / managed Apple Watch devices? For example: Are logs stored elsewhere? Is transfer to the organizer iPhone restricted? Is co-sysdiagnose unsupported in Family Setup mode? Are additional conditions required, such as Wi-Fi, charging state, unlocked devices, or a longer delay? I may be missing something obvious, but I have not found documentation describing this difference. If this is expected behavior, I’d really appreciate a pointer to the relevant documentation. Thanks a lot!
Replies
1
Boosts
0
Views
732
Activity
Apr ’26
watchOS VoIP App: Incoming Calls?
Hello! I’m building a VoIP app for iPhone and Apple Watch using PushKit and CallKit. I’m trying to understand the recommended watchOS architecture for this kind of setup. What we would like is for the watch to behave as an endpoint for incoming calls, so that when a call comes in the user can answer on either the iPhone or the watch. My understanding is that VoIP notifications are not supported on watchOS, so for incoming calls what we ended up having to do was send the watch a regular APNs alert notification and only start the actual call setup after the user interacts with it. This isn’t ideal, and the notification often appears a few seconds late. What we would like to be able to do is present the incoming call on the watch more like how FaceTime calls appear on Apple Watch. So I wanted to ask whether this is the intended pattern for a companion watchOS VoIP app. Is using a regular APNs alert notification the correct way to surface an incoming call on the watch, or is there a better supported approach? Thanks!
Replies
2
Boosts
0
Views
1.6k
Activity
Apr ’26
Audio cues not working when app is in the background
I have a iOS/watchOS app that gives audio cues, like a metronome, on specific patterns. The intent of the watch app is to have it at the same time as a workout app (ie Strava, Apple Fitness) and/or a music app (Spotify/Apple Music). The app works in the foreground just fine. But if I start another app (i.e. Strava) the haptic feedback and a "ding" continues to play in the background, but the "beep or voice" stops. Beep/voice works fine in iOS when in the background, just not in watchOS.
Replies
6
Boosts
0
Views
1.3k
Activity
Apr ’26
Paired Watch not appearing in Xcode
I managed to install watchOS 2 without having registered my Watch's UDID, but as it's part of the instructions for installing watchOS betas I thought I'd better do it now in case beta 2 bricks my Watch or something.However, the Watch isn't appearing in Xcode. I've tried both the latest public release and Xcode 7 beta, but there's "no paired devices" section under my iPhone when I connect it to Xcode and look in the Devices window.
Replies
9
Boosts
2
Views
11k
Activity
Apr ’26
Availability for BLE background scanning on watchOS whilst dimmed
I am trying to find out about the availability of BLE scanning for advertisements when a watchOS app (on watchOS 26.4 with CoreBluetooth) which starts running a HKWorkoutSession becomes dimmed, ie. due to the user lowering their arm. From my understanding there is still availability for ongoing scanning whilst in the dimmed mode. If this is correct, what settings are required (e.g. using background capability for 'Workout Processing', 'bluetooth-central', etc), and does scanning whilst in background mode limit to requiring service uuids in scanForPeripherals? Also if scanning is throttled, is there an 'estimated' inter scan time? Thanks
Replies
1
Boosts
0
Views
813
Activity
Apr ’26