CLMonitor.CircularGeographicCondition Not triggering when in background on iOS 18 B1

Our test devices running the Dev Beta 1 for iOS 18 no longer recieve updates from the CLMonitor async stream (for try await event in await monitor.events) when the app is in the background and suspended. This works fine in iOS 17.

I only have one CLMonitor.CircularGeographicCondition active at any given time, they switch out dynamically in the background based on the user's location. Another thing is that visit tracking and significant location changes continue to work as expected in the background.

I have submitted feedback (FB13883553) but I'm curious if this is an undocumented policy change or a bug.

Answered by AppleCare Staff in 790830022

With iOS18, if your app is authorized for .always, you need to create explicit CLServiceSession in order for it to receive events.

Please refer to WWDC24 talk on What's new in location authorization. I encourage you to watch the whole session as it talks about the new location authorization in iOS18.

Here is the link to the video from the time that is related to your question.

Accepted Answer

With iOS18, if your app is authorized for .always, you need to create explicit CLServiceSession in order for it to receive events.

Please refer to WWDC24 talk on What's new in location authorization. I encourage you to watch the whole session as it talks about the new location authorization in iOS18.

Here is the link to the video from the time that is related to your question.

CLMonitor.CircularGeographicCondition Not triggering when in background on iOS 18 B1
 
 
Q