Check out https://developer.apple.com/documentation/corelocation/cllocationsourceinformation/3861807-issimulatedbysoftware, new in iOS 15.
Post
Replies
Boosts
Views
Activity
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.
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.
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.
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.