Post

Replies

Boosts

Views

Activity

Reply to Background location updates stop in iOS 16.4
I'm only seeing the issue when showsBackgroundLocationIndicator = false and startUpdatingLocation() is called while the app is backgrounded. When showsBackgroundLocationIndicator = true and startUpdatingLocation() is called while the app is foregrounded, no issues. Before iOS 16.4, both cases worked fine. I'm not starting background tasks, although I'm also not seeing [[UIApplication sharedApplication] backgroundTimeRemaining] ticking down. I'll do some more testing tomorrow.
Mar ’23
Reply to Background location updates stop in iOS 16.4
Are you using showsBackgroundLocationIndicator = false or showsBackgroundLocationIndicator = true? Are you calling startUpdatingLocation() when the app is foregrounded or backgrounded? I filed a bug report: https://feedbackassistant.apple.com/feedback/12082689 Before iOS 16.4, we could reliably start CLLocationManager in the background (for example, in response to a CLCircularRegion exit or a CLVisit arrival) by calling startUpdatingLocation(), and keep it running indefinitely, assuming we had "Always" location permissions and the "Location updates" background mode. As of iOS 16.4, this no longer works reliably if the CLLocationManager is started when the app is backgrounded and showsBackgroundLocationIndicator = false. It does still seem to work if the CLLocationManager is started when the app is foregrounded and showsBackgroundLocationIndicator = true. We have seen a few similar reports on the developer forums: https://developer.apple.com/forums/thread/727015 https://developer.apple.com/forums/thread/726945 Did this behavior change in iOS 16.4? Thank you.
Mar ’23
Reply to iOS 16.4. Unable to Run in the Background Even with Always Allow Location Permission Enabled
Are you using showsBackgroundLocationIndicator = false or showsBackgroundLocationIndicator = true? Are you calling startUpdatingLocation() when the app is foregrounded or backgrounded? I filed a bug report: https://feedbackassistant.apple.com/feedback/12082689 Before iOS 16.4, we could reliably start CLLocationManager in the background (for example, in response to a CLCircularRegion exit or a CLVisit arrival) by calling startUpdatingLocation(), and keep it running indefinitely, assuming we had "Always" location permissions and the "Location updates" background mode. As of iOS 16.4, this no longer works reliably if the CLLocationManager is started when the app is backgrounded and showsBackgroundLocationIndicator = false. It does still seem to work if the CLLocationManager is started when the app is foregrounded and showsBackgroundLocationIndicator = true. We have seen a few similar reports on the developer forums: https://developer.apple.com/forums/thread/727015 https://developer.apple.com/forums/thread/726945 Did this behavior change in iOS 16.4? Thank you.
Mar ’23
Reply to Crash when requesting location authorisation on app startup
We are also seeing similar crashes. They are rare and hard to reliably reproduce. From what we can tell, they all involve CLLocationManager calls (including to authorizationStatus and monitoredRegions) on the main thread and when the app is backgrounded. CLLocationManager then calls into NSXPCConnection and __NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__, and we're assuming that this "waiting for a synchronous reply" is slow, which then causes watchdog to kill the app. Any info or support from the Core Location team would be much appreciated.
Feb ’22