Hi all. Does anyone know if there's a way to get a list of watch faces for a paired Apple Watch or to set the current face? Or is this just not allowed?
I've taken a look at the WatchOS, WatchKit, and WatchConnectivity documentation and no luck there.
                    
                  
                Watch Connectivity
RSS for tagImplement two-way communication between an iOS app and its paired watchOS app using Watch Connectivity.
Posts under Watch Connectivity tag
            
              
                34 Posts
              
            
            
              
                
              
            
          
          
  
    
    Selecting any option will automatically load the page
  
  
  
  
    
  
  
              Post
Replies
Boosts
Views
Activity
                    
                      I have both apple devices, AirPods Pro 3 is up to date and Ultra 3 is on watch os 26.1 latest public beta.
Each morning when I would go on my mindfulness app and start a meditation or listen to Apple Music on my watch and AirPods Pro 3, it will play for a few seconds then disconnects. My bluetooth settings on my watch says my AirPods is connected to my watch. I also have removed the tick about connecting automatically to iPhone on the AirPods setting in my iPhone.
To fix this I invariably turn off my Apple Watch Ultra 3 and turn it on again. Then the connection becomes stable. I am not sure why I have to do this each morning. It is frustrating. I am not sure why this fix does not last long? Is there something wrong with my AirPods?
Has anyone encountered this before?
                    
                  
                
                    
                      Beta two keeps hanging during the download process and says connect to wifi (which I am) or after hours it may download the beta 1.4gb file only to have to freeze in next processing step.
I have tried all the resets, reinstalling both the watch and the phone running OS26.1 Beta 2 etc.
The impact is the watch and the current software implementation is only getting a couple hours of battery usages before going dead
                    
                  
                
                    
                      Hi everyone,
I’m a student developer currently building a watchOS app that uses HealthKit and HKWorkoutSession to estimate core body temperature from real-time heart rate data. The app runs well in the simulator, but testing on a physical Apple Watch has been extremely difficult.
Each time I try to run the app from Xcode (Version 16.3), the build gets stuck on:
“Copying shared cache symbols from MyWatchName (0% completed)”
Sometimes it just stops stating connection failure. However, more often no errors are shown, but the sync never finishes. I’ve tried the following without success:
Restarting the watch, iPhone, and Xcode
Switching networks (Wi-Fi and hotspot)
USB wired pairing
Resetting developer settings and trust prompts
Deleting derived data
Rebuilding the project
This is especially limiting for a real-time health tracking app where I need to monitor HKLiveWorkoutBuilder data while the screen sleeps — which can’t be tested effectively in the simulator.
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Developer Tools & Services
  	
                
                
                SubTopic:
                  
                    
	
		Xcode
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            WatchKit
          
        
        
      
      
    
      
      
      
        
          
            watchOS
          
        
        
      
      
    
      
      
      
        
          
            HealthKit
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      How to launch companion Watch App without relying on Health Kit?
I need my companion watch to launch automatically in some specific cases. What I'm doing to achieve that is to call "startWatchApp" in HKHealthStore().
This worked flawlessly for well over a year but AppReview is now giving me a hard time about using HealthKit without actually using health related data.
Is there a way to do the same without using HealthKit? Seems silly that this is bundled only with the HealthKit...
If I don't find another solution I will probably be forced to start reading heart rate data and reporting it to the user just so that AppReview will stop saying that I have no reason to use HealthKit... But ideally I'd love to learn about a way to open the companion Watch app without HealthKit and do things the right way...
                    
                  
                
                    
                      I'm trying to update data displayed in my Watch Complications (WidgetKit). I have an iOS app that sends data to the Apple Watch using WCSession.default.transferUserInfo. However, the data only updates on the complications or widgets after I open the watchOS app manually.
Ideally, I'd like the Watch widget/complication to reflect the updated data as soon as it's sent from the iPhone, without requiring the user to open the Watch app.
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Widgets & Live Activities
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            WatchKit
          
        
        
      
      
    
      
      
      
        
          
            Watch Complications
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      Hi everyone,
I'm building a health-focused iOS and watchOS app that uses WatchConnectivity to sync real-time heart rate and core body temperature data from iPhone to Apple Watch. While the HealthKit integration works correctly on the iPhone side, I'm facing persistent issues with WatchConnectivity — the data either doesn't arrive on the Watch, or session(_:didReceiveMessage:) never gets triggered.
Here's the setup:
On iPhone: Using WCSession.default.sendMessage(_:replyHandler:errorHandler:) to send real-time values every few seconds.
On Apple Watch: Implemented WCSessionDelegate, and session(_:didReceiveMessage:) is supposed to update the UI.
Both apps have WCSession.isSupported() checks, activate the session, and assign delegates correctly.
The session state shows isPaired = true and isWatchAppInstalled = true.
Bluetooth and Wi-Fi are on, both devices are unlocked and nearby.
Despite all this, the Watch never receives messages in real-time. Sometimes, data comes through in bulk much later or not at all.
I've double-checked Info.plist configurations and made sure background modes include "Uses Bluetooth LE accessories" and "Background fetch" where appropriate.
I would really appreciate guidance on:
Best practices for reliable, low-latency message delivery with WatchConnectivity.
Debugging steps or sample code to validate message transmission and reception.
Any pitfalls related to UI updates from the delegate method.
Happy to share further details. Thanks in advance!
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Networking
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            Health and Fitness
          
        
        
      
      
    
      
      
      
        
          
            watchOS
          
        
        
      
      
    
      
      
      
        
          
            Apple Watch
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      I have an Apple Watch 4. (GPS).  It's on version 10.6.
I'm trying to deploy a basic app onto it (IOS 18) (WatchOS 9.6).
I've set the targets in General for Watch App, Watch AppTest, Watch AppUITest.
I still get an Apple Watches watchOS doesn't match App Watch app.app watch02 9.6 deployment target.  Upgrade users Apple Watch watchOS version or lower app app.apps deployment target.
What can I do to fix this?
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Developer Tools & Services
  	
                
                
                SubTopic:
                  
                    
	
		Xcode
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            Developer Tools
          
        
        
      
      
    
      
      
      
        
          
            WatchKit
          
        
        
      
      
    
      
      
      
        
          
            watchOS
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      I am experiencing an issue with my watchOS app. My application updates a shared file, accessible by both the main app and the WidgetKit extension, during a WatchConnectivity background task. Following this update, I call reloadAllTimelines().
This functionality worked as expected on watchOS 10, even without Developer Mode enabled. However, after updating my device to watchOS 11.5, this API appears to be broken.
My reasons for believing this API is broken are threefold:
The functionality worked reliably on watchOS 10.
On watchOS 11.5, enabling "WidgetKit Developer Mode" (found under Settings > Developer) resolves the issue, and my complications update correctly.
When I enter watch face edit mode, the snapshot/preview displayed (which utilizes the same underlying logic as the timeline API) shows the correct data. This indicates that the data has been successfully received from the phone, and the widget is indeed reading the updated shared file. Despite this, the actual widget view during its resting phase never updates.
It's worth noting that TimelineReloadPolicy functions as expected, but I cannot rely on this for my use case. My widget requires immediate updates upon receiving new data.
Apple, please investigate this behavior.
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Widgets & Live Activities
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            watchOS
          
        
        
      
      
    
      
      
      
        
          
            Watch Complications
          
        
        
      
      
    
      
      
      
        
          
            WidgetKit
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      In general my workout app is reachable from the iPhone when running a workout, even if in the background. However if the watch app restarts (due to crash or being closed via the dock) via handleActiveWorkoutRecovery then it is only reachable when in the foreground, even though a workout is running.
Is this expected / desired behaviour? Is the app given a tighter sandbox (having it's "background privileges" reduced) because of the earlier crash?
This behaviour occasionally happens without a crash (or being closed via the dock) - all of a sudden it is no longer reachable via the iPhone. It feels like the app is being "sandboxed" like in #1 but there is no crash or any other kind of log indicating any issue. Generally the only remedy is to stop the workout and restart the app. My question is - is this expected? Is there some condition that causes the watchOS to sandbox the app? Or is this a Watch Connectivity bug?
                    
                  
                
                    
                      Hello all,
I have run into a weird situation in my watchOS app with a companion iOS app.
Issue: Watch fails to receive sendMessage string sent from phone while watch is in foreground. This is not consistent and seems to happen randomly under certain conditions.
Order of operations: User Opens phone app & watch app -> user presses "sendMessage" button, func is called -> watch does not receive message while in foreground
Condition explanation: To my knowledge, without a HealthKit workout session active, the apple watch is not available to receive messages (using any internal library transmission type) from its iOS companion app while the watch screen is not in the foreground (i.e. inactive). However, my issue is that sometimes, while the watch IS in the foreground, it does not receive the companion app's message. Additionally, this is not resolved by force quitting both iOS and watchOS apps. The only way I have gotten this issue to go away is by restarting both the phone and the watch. Again, it is not a consistent behavior and seemingly happens randomly. This behavior has been observed across multiple different beta testers on different hardware.
This is only apparent when transmitting from Phone -> Watch. I have not experienced any transmission issues when transmitting Watch -> Phone.
My team and I have speculated that it could be an issue with WCSession.isReachable returning true before we transmit the message but changing to false before the hardware actually transmits. However, this wouldn't explain why the watch would not be available while in the foreground. This is just a preliminary thought.
My goal in posting on here is to see if anyone else has experienced this, or if it's a known bug.
All message protocols have been coded to follow Apple's WCSession documentation as closely as possible.
Hardware specs:
Watch Model: A2093 (series 5)
WatchOS ver: 10.6.1
Phone: MU693LL/A (15 pro max)
iOS ver: 18.3.2
XCode ver: 16.0
                    
                  
                
                    
                      We are seeing an issue where sending data using the asynchronous method HKWorkoutSession.sendToRemoteWorkoutSession(data: Data) will never return in some cases (no success nor failure).
This issue is happening for roughly 5% of Workouts started and will stay broken for the whole workout. The other 95% of the workouts, the connection works flawlessly. This happens on both watchOS 10 and 11, and with phones running iOS 17 or 18. The issue is quite random and not reproducible.
Our app has thousands of workouts a day that use the workout session workout data send, with constant messages being send every few seconds.
In some of those 5% cases the "sendToRemoteWorkoutSession" will throw way later, like 30+ minutes later, if the watch app is awake long enough to capture a log of a failure.
Our code uses the same flow as in the sample project:
https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings/building_a_multidevice_workout_app
Here is some sample code, which is pretty simple.
Setup code:
let workoutSession = try HKWorkoutSession(healthStore: healthStore, configuration: configuration)
workoutSession.delegate = self
activeWorkoutSession?.startMirroringToCompanionDevice { success, error in
    print("Mirroring started on companion device: \(success), error: \(error)")
}
workoutSession?.prepare()
then later we send data using the workout session:
do {
    print("Will send data")
    try await workoutSession.sendToRemoteWorkoutSession(data: data)
    print("Successfully sent data") // This nor the error may be called after waiting extensive amounts of time
} catch {
    print("Failed to send data, error: \(error)")  // This nor the success may be called after waiting extensive amounts of time
}
So far, the only fix is to restart the phone and watch at the same time, which is not a great user experience.
Is anyone else seeing this issue? or know how to fix this issue?
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Health & Fitness
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            Health and Fitness
          
        
        
      
      
    
      
      
      
        
          
            watchOS
          
        
        
      
      
    
      
      
      
        
          
            WorkoutKit
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      I am able to get location in for ground and back ground but
Now I need to get location when user killed app.
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Maps & Location
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            watchOS
          
        
        
      
      
    
      
      
      
        
          
            Core Location
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      We developed a camera remote control app for Apple Watch, but during the development process, we found that Apple Watch is prone to sleep on its own without screen interaction (usually automatically sleeping between 5s and 15s when there is no interaction, but our Apple Watch app actually receives the camera preview video frame data we transmit all the time, and there is no data interaction), and then triggers the sessionReachableDidChange function, and the session.isRechable is false. We hope that the camera remote control app for our Apple Watch can remain on when in the foreground, making it convenient to control our camera app on our phone. We found that DJI's Apple Watch app does not automatically sleep and does not sleep for more than 2 minutes. We have tried many methods, such as heartbeat packets, and I have added WKSupportsAlwaysOnDsplay to the Apple Watch info.plist file, but have not found an effective solution. I hope you can provide assistance, thank you.
                    
                  
                
                    
                      My app monitors users heart beats and if critical reading is noticed, it auto -dials 911 for emergency and ambulance help.
I was under the impression that auto-dial may not be permitted or possible on the platform.
Can anyone confirm and provide any additional guidance on if it is possible in the newer SDK/API stack or using any 3rd party service ?
Thank you in advance!!
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Automation & Scripting
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Mobile Core Services
          
        
        
      
      
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            WatchKit
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      I am working on watch os project. I need to check network connectivity when user turn on and off the network.
I am using NWPathMonitor for check network availability. I am connected with wifi but it still showing unsatisfied not real device but it's working perfect on simulator.
                    
                  
                
                    
                      There doesn't seem to be a background mode that will allow an iPhone app to run in the background in order to communicate with its watch app, which is running in the foreground on the watch. Have I missed something?
Related but not quite the same: say the iPhone app can run in the background to get location updates. But it only wants to do so when the watch app is running. Is there a way that the watch app can wake, or even start, the iPhone app, and for the iPhone app to then enable location updates?
(I have previously implemented Bluetooth background modes - I think I could achieve both of the above if I had the watch and the iPhone communicate using my own BTLE protocol, rather than using Watch Connectivity. Is this true?)
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		App & System Services
  	
                
                
                SubTopic:
                  
                    
	
		Core OS
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Watch Connectivity
          
        
        
      
      
    
      
      
      
        
          
            WatchKit
          
        
        
      
      
    
      
      
      
        
          
            Core Location
          
        
        
      
      
    
      
      
      
        
          
            Apple Watch
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      I've got a watch app, still with storyboard, WKInterfaceController and WatchConnectivity.
After updating it for swift 6 concurrency I thought I'd keep it for a little while without swift 6 concurrency dynamic runtime check.
So I added -disable-dynamic-actor-isolation in OTHER_SWIFT_FLAGS, but it doesn't seem to have an effect for the Apple Watch target. Without manually marking callbacks where needed with @Sendable in dynamic checks seem to be in place.
swiftc invocation is as (includes -disable-dynamic-actor-isolation):
swiftc -module-name GeoCameraWatchApp -Onone -enforce-exclusivity\=checked ... GeoCameraWatchApp.SwiftFileList -DDEBUG -enable-bridging-pch -disable-dynamic-actor-isolation -D DEBUG -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS11.2.sdk -target arm64_32-apple-watchos7.0 -g -module-cache-path /Users/stand/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -enable-testing -index-store-path /Users/stand/Library/Developer/Xcode/DerivedData/speedo-almhjmryctkitceaufvkvhkkfvdw/Index.noindex/DataStore -enable-experimental-feature OpaqueTypeErasure -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 6
...
-disable-dynamic-actor-isolation flag seems to be working for the iOS targets, I believe.
The flag is described here
Am I missing something? Should the flag work for both iOS and Apple Watch targets?
                    
                  
                
                    
                      Hi everyone. Does anyone know if there a way to get a list of watch faces for a paired Apple Watch, or to set the current watch face? Or is this just not allowed?
Have looked through the WatchKit, WatchConnectivity, and WatchOS documentation and haven't found anything.
                    
                  
                
                    
                      I have a depended watch app bundled with my iOS app.
// ...
<key>WKRunsIndependentlyOfCompanionApp</key>
<false/>
// ...
My code:
guard WCSession.isSupported() else {
  return
}
let session = WCSession.default
session.delegate = self
session.activate()
public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
  // ... 
  if (session.activationState == .activated) {
     let log = Log(isPaired: session.isPaired, isWatchAppInstalled: session.isWatchAppInstalled)
     uploadLogToServer(log)
  }
  // ...
}
and also:
guard WCSession.isSupported() else {
  return
}
let session = WCSession.default
guard session.activationState == .activated, session.isWatchAppInstalled else {
  return
}
do {
  try session.updateApplicationContext(...)
} catch {
  uploadErrorToServer(error)
}
What I've observed is that when I query the logs in the server's database, I get entities with isPaired = false and isWatchAppInstalled = true.
Also, when I query the errors I see deviceNotPaired errors.
So my question is, does Should WCSession.isPaired property be true before accessing WCSession.isWatchAppInstalled property ?