Yeah, I found a solution.
On Apple Watch Ultra, WKBackgroundModes = underwater-depth and the shallow-depth entitlement weren’t sufficient. Add a StartDiveIntent directly to the watch app target:
import AppIntents
struct StartAppDiveIntent: StartDiveIntent {
static let title: LocalizedStringResource = "Start App
static var openAppWhenRun: Bool { true }
func perform() async throws -> some IntentResult {
.result()
}
}
Then call WKExtendedRuntimeSession.requestAutoLaunchAuthorizationStatus only after the app is fully foreground-active. Without the intent, Ultra returns error 10; calling too early returns error 9. No full-depth entitlement or WKSupportsAutomaticDepthLaunch key is needed. The Simulator cannot validate this - test on physical hardware.
Topic:
App & System Services
SubTopic:
General
Tags: