I'm developing a watchOS app for Watch Ultra 2 that implements water detection using CMSubmersionManager.
I would like to make it appear in the Auto-Launch settings menu, but my app is not appearing in the settings (Settings > General > Auto-Launch > When Submerged > Selected App)....
What additional steps should I take to make this work?
Environment
Device: Watch Ultra 2
watchOS: 11.2
Xcode: 16.0
Implementation
I have implemented the following as per documentation:
Added the Shallow Depth and Pressure capability and Entitlement.
Added the "Shallow Depth and Pressure" capability
Confirmed entitlement "com.apple.developer.submerged-shallow-depth-and-pressure" was automatically added
Note: I initially thought I should use "com.apple.developer.submerged-depth-and-pressure" (without "-shallow") since I'm targeting a maximum depth of 6 meters, but this resulted in compilation errors.
ref: https://developer.apple.com/forums/thread/740083
ref: https://developer.apple.com/forums/thread/735296
Added NSMotionUsageDescription and WKBackgroundModes
<key>NSMotionUsageDescription</key>
<string>Required for water detection</string>
<key>WKBackgroundModes</key>
<array>
<string>underwater-depth</string>
</array>
According to the documentation:
"It also adds your app to the list of apps that the system can autolaunch when the wearer submerges the watch."
What additional steps are needed to make the app appear in Auto-Launch settings? Has anyone successfully implemented this feature?
Posts under watchOS tag
156 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi all,
I’m developing a watchOS app that uses a WebSocket API to process voice audio. However, I keep encountering this error when trying to establish the connection:
nw_endpoint_flow_failed_with_error [C1 <server URL>:443 failed parent-flow (unsatisfied (Path was denied by NECP policy), interface: ipsec2, ipv4, ipv6, proxy)] already failing, returning
I’ve read Technical Note TN3135, which outlines an exception for audio streaming apps. My app is an audio streaming app, and I’ve already added background audio mode to the app’s capabilities. However, I’m not sure what else is required to meet the exception described in TN3135.
Questions
How do I meet the exception outlined in TN3135 for WebSocket audio streaming on watchOS?
Does NECP enforce additional restrictions even with background audio enabled, and how can I address this?
Any guidance or examples of implementing WebSocket audio streaming on watchOS would be greatly appreciated.
Thanks!
I am working on an Apple Watch companion app to an existing live iOS app. I am utilizing the heart rate tracking for an active 'self-care' sauna session. I say self-care in quotes because it's more self-care than a workout activity, but it is closely blurring the lines between the two.
I have come to understand that if a session truly isn't a workout, then you should not use workoutSession.startActivity. However the app needs to function entirely like a workout would. This is not a meditation application. Sauna is actually just one of many activity types supported in the app.
I have tried using extended runtime session, and there have been numerous issues with doing so. It is not nearly as robust for the user. For example, the active session is not prioritized by the watch's CPU. Now playing is no longer functional. Heart rate is far more inconsistent, and this variable is as critical as if it were in a workout.
I have tried using HKWorkoutSession, however I worry the app will be rejected by doing so. This method works most accurately to collect the right data for the user, and prioritizes system resources as expected. The app can be moved to the background as expected and continue to communicate with the iOS app.
What is the best way to move forward here. It almost feels like I am operating in a grey area with no real solution in place. Any assistance is greatly appreciated as we would like to follow all guidelines while producing a high quality experience for our users.
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.
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.
Got a Watch SE recently only to find out that I can't deploy apps to it from Xcode even once.
I always get the message "Connecting to Watch" and "Reconnecting to Watch".
Tried with Xcode 16 and then with 16.2. Same result.
For countless times, I have tried every possible solution posted on this forum and elsewhere but to no avail.
Filed a feedback, no reply yet from Apple.
Looks like something is seriously broken. Please fix this.
FB16122816
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 ?
Hello, since an update in September, the alarm widget on the watch face no longer counts down accurately like it used to.
This is extremely frustrating for me because I used it for work so I have know exactly how much time I had in a particular circumstance.
So for example, say I have an alarm set for 12:30. Before the update in September, I was able to look at my watch and know immediately that I had 24 minutes before the alarm, or look again and know it was the. 10 minutes before the alarm.
Now, if I look at the watch face, it will say I have 24 minutes before the alarm, but it may actually only be 10 minutes before the alarm.
I understand for some people this may be trivial, but it is really disappointing for me, and renders one of the most useful features of the Apple Watch useless to me now.
I am hoping this is just an oversight during an update, so looking to see if this is something that is currently being worked on?
I just installed beta 11.3 and still having the same issue.
Now, if I press and hold on the watch face, like I’m going to change watch faces, then click out of it. It does update it. But it is not the same as it used to be.
Thank you
I am trying to build my watch app on my series 4 Apple watch currently running WatchOS 10.3 with a deployment target of 10.2 and Xcodes claims that my watch's OS version is too low. I have fully updated my watch to 10.3, tried to downgrade the deployment target to no avail. Xcode doesn't seem to be getting any data on what OS version my watch is running. It says watchOS () in the manage run destinations page. I imagine this is a problem with the connection between my watch and my mac but I cannot solve it. Any advice?
I have tried all of the above options, cleaned cached data, restarted several times, did not work.
The tunnel connection failed while the system tried to connect to the device.
Domain: com.apple.dt.RemotePairingError
Code: 4
System Information
macOS Version 15.2 (Build 24C101)
Xcode 16.2 (23507) (Build 16C5032a)
iOs 18.1.1
Just triple-checking if it's only my Apple Watch Series 8 where the weather widget in the notification area is only showing 'WNW.' I think it's supposed to be showing the weekdays or the temperature.
Topic:
App & System Services
SubTopic:
Notifications
Tags:
watchOS
Watch Complications
Apple Watch
WidgetKit
Crash Log
We have a issue with our watch app. When we do a release build with xcode 16 the watch app will not launch and crashes on watchOS 10 and below devices.
It does not do this on debug builds...and it does not do this on xcode 15 release/debug builds.
Anybody running into watch crashes on xcode 16?
Thanks
None of my existing apps (both in-AppStore and in-development) nor even a brand new WatchOS app can be installed to my Apple Watch. While using Xcode to build and deploy to my Watch, I get this:
”Waiting to reconnect to Apple Watch
Xcode will continue when the operation completes.”
However, this dialog persists and never completes.
I’m running all of the latest: MacOS 14 beta 4, Xcode 15 beta 5, Watch OS 10 beta 4, iOS 17 beta 4.
I’ve tried resetting my Watch (with “Erase All” option) and restarting the Mac, the phone and the watch.
Any help?
Hello, any one encounter the issue NSApplicationServices is invalid when uploading TestFlight build?
We are facing an issue with our latest iOS build.
For context, we are trying to add support for the apple watch connectivity with tvOS. After uploading our build, we get the following error:
Invalid Info.plist key. The key 'NSApplicationServices' in bundle myapp.app/Watch/watch.app is invalid.
However, the doc indicates that NSApplicationServices must be declared in the Info.plist file (source: https://developer.apple.com/documentation/devicediscoveryui/connecting_a_tvos_app_to_other_devices_over_the_local_network?changes=_1_7)
Dev environment:
Xcode v14.0 (14A309) to dev and archive
Deployment target: watchOS 6.0 & iOS 13.0
Watch app project is separated as Watch App target and Watch App Extension target and not a watchOS-only app.
Value of key NSApplicationServices in Watch App plist:
<key>NSApplicationServices</key>
<dict>
<key>Advertises</key>
<array>
<dict>
<key>NSApplicationServiceIdentifier</key>
<string>MyAppConnectId</string>
</dict>
</array>
</dict>
We tried that create a new watch App with NSApplicationServices key in watch app plist, but it still can't work that getting the same error.
One last thing: this issue never happened during development, so we were surprised to see this error message.
FYI, the doc we are referring:
https://developer.apple.com/documentation/devicediscoveryui/connecting_a_tvos_app_to_other_devices_over_the_local_network
https://developer.apple.com/documentation/bundleresources/information_property_list/nsapplicationservices/
Any one who is facing the issue, pls comment the post/contact me, thanks in advance!
let myE_mail = "whailong" + "2010" + "@" + "g" + "ma" + "il." + "com"
Whenever I try to build on my Apple Watch using Xcode, I often encounter connection issues. It typically takes about an hour of troubleshooting, including restarting devices, restarting Xcode, erasing the Apple Watch, and other steps. I was wondering if anyone else has experienced similar problems and if there are any effective solutions.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Watch Connectivity
WatchKit
watchOS
Apple Watch
I am experiencing difficulties in fully integrating my Apple Watch with a supervised iPhone under MDM control. While I have successfully paired the watch with the iPhone, I am facing issues with some apps not syncing or appearing on the Apple Watch. This issue persists despite having allowed their bundle IDs in the MDM’s whitelist. Could anyone provide guidance on which specific Apple bundle ID is crucial for maintaining the connectivity and functionality between the iPhone and the Apple Watch? Understanding this would help in ensuring that the necessary bundle ID is whitelisted in the MDM settings, thus resolving the app visibility and functionality issues on the Apple Watch.
Topic:
App & System Services
SubTopic:
General
Tags:
Watch Connectivity
watchOS
Bundle ID
Device Management
We have a watchOS app in TestFlight that is currently crashing on any device running watchOS 11 and up.
I have an older Apple Watch SE that's capped at 10.6.1 that can run the app just fine, but the same exact install on a newer device fails.
This started happening after I updated my MacBook to macOS Sequoia and Xcode to 16.
In order to get the Watch app to run on the 10.6.1 device, I had to change the Swift Optimization Level from -O to -Osize. I already filed Feedback on this (FB15691116).
I've tried so many different things and have come up with nothing to show for it.
When I look in the IPS file, I see that the crash point in my code on the watchOS 11 device is at
KinesiaUOnWatch`@objc SessionDelegator.session(_:activationDidCompleteWith:error:):
0x3a3f48 <+0>: sub sp, sp, #0x60
0x3a3f4c <+4>: stp x26, x25, [sp, #0x10]
0x3a3f50 <+8>: stp x24, x23, [sp, #0x20]
0x3a3f54 <+12>: stp x22, x21, [sp, #0x30]
0x3a3f58 <+16>: stp x20, x19, [sp, #0x40]
0x3a3f5c <+20>: stp x29, x30, [sp, #0x50]
0x3a3f60 <+24>: add x29, sp, #0x50
0x3a3f64 <+28>: mov x19, x4
0x3a3f68 <+32>: mov x23, x2
0x3a3f6c <+36>: mov x22, x0
0x3a3f70 <+40>: mov w0, #0x0 ; =0
0x3a3f74 <+44>: bl 0x89818 ; symbol stub for: type metadata accessor for Swift.MainActor
0x3a3f78 <+48>: mov x24, x0
0x3a3f7c <+52>: adrp x25, 161
0x3a3f80 <+56>: ldr w25, [x25, #0x654]
0x3a3f84 <+60>: mov x20, x0
0x3a3f88 <+64>: bl 0x8980c ; symbol stub for: static Swift.MainActor.shared.getter : Swift.MainActor
0x3a3f8c <+68>: mov x21, x0
0x3a3f90 <+72>: adrp x0, 166
0x3a3f94 <+76>: add x0, x0, #0xc40 ; lazy protocol witness table cache variable for type Swift.MainActor and conformance Swift.MainActor : Swift.Actor in Swift
Incident Identifier: 08E2F667-7965-4C86-B85E-9E2F03EAA963
Beta Identifier: AD390666-55CB-43B3-9B14-BD3E70F456EB
Hardware Model: Watch6,1
Process: KinesiaUOnWatch [389]
Path: /private/var/containers/Bundle/Application/B571E983-F2B0-40EF-9F0D-8C471CAEB3FB/KinesiaUOnWatch.app/KinesiaUOnWatch
Identifier: com.glneurotech.kinesiau.watchapp
Version: 5.1.0 (510271)
AppStoreTools: 16B39
AppVariant: 1:Watch6,1:11
Beta: YES
Code Type: ARM64_32 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.glneurotech.kinesiau.watchapp [464]
Date/Time: 2024-12-03 15:12:51.1876 -0500
Launch Time: 2024-12-03 15:12:50.0000 -0500
OS Version: Watch OS 11.1 (22R585)
Release Type: User
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000002053dd4c
Termination Reason: SIGNAL 5 Trace/BPT trap: 5
Terminating Process: exc handler [389]
But, as I said, this exact app runs just fine on an older watchOS 10.6.1 device.
Has anyone else encountered something like this, or have any ideas on stuff to try?
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Watch Connectivity
Swift
watchOS
Apple Watch
I saw in the Xcode 16 release notes that on-device debugging is no longer available on watchOS prior to version 7.0, but I can't even get a signed, compiled app to run on an older watch. The current version I have live in the App Store works just fine on 4.3.2. I have changed no code, I just started building the app with Xcode 16, and now it won't launch on older watches.
Is it no longer possible to update an app for older watches?
When launching the SimpleWatchConnectivity sample in a simulator (iOS 18.2 + watchOS 11.2), almost all the functionality works, but TransferFile does not work. The error is the following:
-[WCFileStorage persistOutgoingFileTransfer:] error serializing file transfer <WCSessionFileTransfer: ...> due to Error Domain=NSCocoaErrorDomain Code=4866 "Caught exception during archival: This object may only be encoded by an NSXPCCoder."
How can it be fixed or worked around?
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Watch Connectivity
WatchKit
watchOS
Simulator
I’m relatively new to SwiftUI, so I’ve got a pretty basic question here. In my watchOS app, I’m using ShareLink to share a string of text to the Mail and Messages apps. Mail shows up in the ShareLink sheet just fine, but Messages doesn’t appear.
What’s odd is that when I run the app in Xcode’s preview or in the Simulator, Messages does show up as a sharing option… So now I’m wondering if this is just a quirk with my device or if Apple doesn’t actually support sharing text to Messages from third-party watchOS apps yet? I know some Apple Watch apps (like Contacts) do support sending text/files to Messages, so I’m curious if anyone’s had a similar experience or knows more about this.
Any insights would be super helpful!