Watch app doesn't receive location updates on watchOS 10 beta

Since the iOS 17 beta 6 update, my SwiftUI-based watch app, which serves as a companion to the phone app, no longer receives any location updates. Even though the permissions are set to 'When In Use' on the phone, the CLLocation delegate returns the following error every time the app requests a location update:

Error Domain=kCLErrorDomain Code=1 "(null)" - The operation couldn’t be completed. (kCLErrorDomain error 1.)

Additionally, the SwiftUI map does not display the user's location, indicating that the issue is not related to my CLLocationManager implementation on the watch.

While debugging on the watch, I observed that the service acknowledges the permissions as granted. On the phone, my location is displayed accurately. On watchOS 9.6, the same watch app receives location updates as expected. Furthermore, other apps on the watch receive location updates accurately, even on watchOS 10 beta. This issue is not isolated to my device; my colleagues have experienced the same problem with the TestFlight build.

I suspect that there may be an issue with my project configuration, although I am unsure why this was not a problem before the watchOS 10 beta. Currently, I am attempting to resolve the issue using:

  • Xcode 15.0 beta 8 (15A5229m)
  • watchOS 10 21R5349b
  • iOS 17 21A5326a

It is important to note that the issue is also present in watchOS 10 21R5355a.

The issue is unfortunately not fully solved with iOS 17 RC:

  1. Previous versions of the app which updated after installing RC doesn't have the issue
  2. Freshly installed versions of the app on RC doesn't have this issue
  3. As soon as app is deleted and installed again on RC - locations are broken

OK did some additional testing here. We can reproduce the problem 100% using Xcode in a separate (simple) sample app. Our app isn't shipping yet, so unsure about App Store installation (see discussion below).

Using Xcode 15.0, watchOS 10.0 / iOS 17.0 (all GM versions).

Corruption procedure

  • with app absent from both devices, from Xcode, do a run directly on the watch. This also installs the iOS app as a side affect.
  • on the watch, auth status shows 0 (NotDetermined)
  • requestWhenInUseAuthorization() does not show the auth sheet

From this, auth state is corrupt and there's no way out (no combo of uninstall / reinstall both apps & device reboot will help) - it stays broken unless you apply the reset procedure below. Other working companion apps are not affected, just this particular app.

Reset procedure

  • uninstall the iOS app (this automatically uninstalls the watch app)
  • iPhone > Settings > General Transfer or Reset > Reset > Reset location & privacy
  • reboot both device
  • reinstall with iOS first & keep it on iPhone at all times.

From that, any kind of installation of watch app will work (Xcode run, watch app installs) & permission problems won't re-occur.

What remains unclear to me at this time as our app isn't shipping yet: other people here mentioned it happened on TF/App Store build. Did that happen for devices that were corrupt by the above procedure first, or for fresh App Store / TF installs? I suspect this could occur if the watch app is installed directly on the watch (which triggers iOS) as opposed to installed from iPhone's watch app initially.

The reset procedure is not viable (ok for development, not for end users as it implies privacy sheets for all apps on the device). Another remark, I did try to reproduce it with shipping companion apps (could not so far - if you can please tell), but I noticed Strava would request all permissions on the iPhone side (watch app is blocked in modal state until that is done by user on the iPhone), which could be a workaround to ship a companion app if App Store release is also affected by this issue.

Same problem here on watchOS 10. When calling requestWhenInUseAuthorization (or any other version of it) nothing happens. There is no system-dialog popping up only the delegate complaining about Error Domain=kCLErrorDomain Code=1.

It must be something with the project setup though. I made a small sample app and there it is working. I tried removing the setting my app to App is only available as a standalone watchOS app and then the popup appears. I don't want that setting though. I do have a companion app.

Edit: I just discovered this message in the console app:

{
    "msg":"#AuthPrompt #Warning Delaying authorization request placed while insufficiently in-use",
    "ClientKeyPath":i<my-bundle-id>.watchkitapp:, 
    "requestType":0, 
    "inUseLevel":0
}

Any chance this is fixed in watchOS 10.0.1?

I've tried a WatchOS Companion App and a WatchOS Standalone app (runs without iPhone checked) with XCode 15 RC. After deinstallation and reinstallation of the watch-App the error occurs in both scenarios. No chance to fix it. Users of my App already reporting that it happens in production with the App downloaded from the Appstore.

I have the same problem with a standalone app for the Apple Watch. The problem occurs both in the simulator (10.0) and on real hardware (10.0.1).

Can confirm that. I‘ve tested different apps from the AppStore, always same behaviour.

Has anyone tried the new 10.1 beta yet? This issue is incredibly frustrating.

I am having the same issue with my app on 10.0.1. Open Water Swim. I only noticed it upon deleting and re-installing the app. If I perform clLocationManager.requestWhenInUseAuthorization() I get a big fat nothing. I will look into that crazy reset procedure and also file a bug report. This is the second bug relating to Core Location. There is also a serious degradation of GPS data (at least on the Ultra). I filed two bugs for this, one in beta FB12587468 and the newer one in release FB13192409. I would say Apple has really introduced some serious issues with core location on this release, and I would not be surprised if some folks end up losing jobs. Good riddance.

This appears to be fixed in the 10.1 beta.

I am working on a new app in iOS 17.2 on my iPhone. The location privacy settings for "always", "when running" and "description" all all in place. However, the settings for location access permissions only reveals "Never" and "When I share" as options. This seems to be where there is a problem. Another App I worked on before iOS17, but did change to use the beta, shows all 4 selections and I can move it to "always", and then my location appears in that app.

My Apple Watch updated to Beta 2 this night and it seems the problem is back! Have you noticed this too?

I am still experiencing this issue with the latest Beta.

I'm getting 1 star reviews which is very annoying.

Watch app doesn't receive location updates on watchOS 10 beta
 
 
Q