Dear All,
I am developing a watchOS app for Apple Watch Ultra that needs to use the Apple depth / water submersion APIs with the entitlement.
The app is configured with the shallow depth and pressure entitlement right now, and I have verified that the entitlement is present both in the signed Watch app and in the embedded provisioning profile.
App configuration:
Platform: watchOS
Device: Apple Watch Ultra
Entitlement used:
com.apple.developer.submerged-shallow-depth-and-pressure = true
Info.plist contains:
WKSupportsAutomaticDepthLaunch = true
WKBackgroundModes includes underwater-depth
I verified the built Watch app with:
codesign -d --entitlements :- /path/to/WatchApp.app
The output contains:
com.apple.developer.submerged-shallow-depth-and-pressure
I also verified the embedded provisioning profile with:
security cms -D -i /path/to/WatchApp.app/embedded.mobileprovision
The embedded profile also contains:
com.apple.developer.submerged-shallow-depth-and-pressure
The built Watch app Info.plist also confirms:
WKSupportsAutomaticDepthLaunch = true
WKBackgroundModes includes underwater-depth
At runtime, my diagnostics show:
Requested source: Automatic or Apple Sensor
Runtime source: Automatic / Apple Sensor
Capability resolved by the app: Shallow
Resolved provider: Apple Sensor — Shallow
Sample source: Apple Shallow
CMWaterSubmersionManager.waterSubmersionAvailable: true
Depth automation: available
Provider start is called
First provider event is received
Submersion state: unknown
No submersion event is received
No depth measurement is received
No temperature sample is received
Provider state: error
Raw error:
Domain: CMErrorDomain
Code: 105
Description: The operation couldn’t be completed.
The relevant runtime failure is:
CMErrorDomain 105
The app also does not appear in:
Apple Watch Settings → General → Auto-Launch → When Submerged
This is the key point that I cannot clarify from the documentation.
My questions are:
Is the entitlement
com.apple.developer.submerged-shallow-depth-and-pressure
sufficient for a watchOS app to appear in:
Apple Watch Settings → General → Auto-Launch → When Submerged?
Is the shallow depth entitlement sufficient to receive runtime events from CMWaterSubmersionManager, including submersion and depth measurements?
Or is the full submerged depth entitlement required for:
appearing in the “When Submerged” auto-launch list;
receiving CMWaterSubmersionManager submersion events;
receiving CMWaterSubmersionManager depth measurements?
What does CMErrorDomain code 105 mean in the context of CMWaterSubmersionManager?
If the shallow entitlement is sufficient, what other conditions could cause CMWaterSubmersionManager to return CMErrorDomain 105 before delivering any submersion or depth samples?
To summarize:
The shallow entitlement is present in the source entitlements file.
The shallow entitlement is present in the signed Watch app.
The shallow entitlement is present in the embedded provisioning profile.
The built Info.plist contains WKSupportsAutomaticDepthLaunch = true.
The built Info.plist contains WKBackgroundModes = underwater-depth.
CMWaterSubmersionManager.waterSubmersionAvailable returns true.
The app does not appear in the Watch “When Submerged” list.
CMWaterSubmersionManager fails with CMErrorDomain 105 before delivering submersion/depth samples.
Any help will be strongly appreciated.
Thank you.
0
0
473