I'm observing significant location changes & region monitoring no longer relaunching terminated apps on iOS 26.
Configuration:
Deployment target: iOS 17, tested on iOS 26.4.2
UIBackgroundModes: location
NSLocationAlwaysAndWhenInUseUsageDescription granted (authorizationStatus = .authorizedAlways)
allowsBackgroundLocationUpdates = true
Using legacy APIs: startMonitoringSignificantLocationChanges() and startMonitoring(for: CLCircularRegion)
NSLocationRequireExplicitServiceSession key is NOT set (relying on implicit service session)
Data logged into UserDefaults
Observed behavior on iOS 26.4.2:
Scenario A — app suspended in background (not force-quit):
Both significant location changes and CLCircularRegion exit events
deliver reliably for the entire trip. didUpdateLocations and
didExitRegion fire as expected with appState = .background.
Scenario B — app force-quit by user from App Switcher:
Over a 30km / 1-hour drive crossing many SLC distance thresholds and
many 2km region boundaries, the app is never relaunched.
application(_:didFinishLaunchingWithOptions:) is never called with
UIApplicationLaunchOptionsLocationKey. No background delegate
callbacks fire. The same code on iOS 18 and earlier did relaunch
the app from force-quit via SLC.
Questions:
Is the iOS 26 behavior in Scenario B intentional — i.e., has Apple
tightened enforcement of the documented "user-terminated apps do not
receive SLC until reopened/rebooted" policy?
Does this enforcement now also cover region monitoring (CLCircularRegion
and CLMonitor), as our test indicates?
If intentional, is there any supported API path that allows a Pro
location-aware app to be relaunched after force-quit WITHOUT
displaying the persistent location indicator (blue arrow / pill)?
CLBackgroundActivitySession appears to always show the indicator.
0
0
72