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.