This is a standalone SwiftUI app w/ watchOS 11. To make things simple, I'm using the new concurrent API, like that:
for try await update in CLLocationUpdate.liveUpdates() { … }
watchOS is supposed to show the auth dialog, but it doesn't show up, even though update.authorizationRequestInProgress
is true
.
What could be the reason?
(Note that I also tried with the procedural old CLLocationManager API, it doesn't work that way as well)
The answer in this case is plist keys. Here's the deal: While the old location APIs with CLLocationManager
had runtime assertions for checking the required NSLocation{xyz}UsageDescription
keys – thus crashing, if they were not present – the new APIs just silently ignore missing usage descriptions.
Please consider the case closed – other than considering better diagnostics for this case as a feature request.