I activate the conditions as follows
Unexpected operation found. Details are below
Conditions and configurations used in the testing
- "Background Modes" Capability with "Location updates" checked on
- added the info.plist keys: NSLocationAlwaysAndWhenInUseUsageDescription, NSLocationWhenInUseUsageDescription with description
- monitoring for several beacon regions and invoking startMonitoringSignificantLocationChanges using core location API
- My app’s location authorization status set ‘WhenInUse’
- add UserNotification in func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool. For that reason, If every app launches, a notification will be triggered in AppDelegate method
Given the condition above applied, What I expect is that if the location permission is 'when in use', if I leave the app by swiping(I have not closed my application by force using "swiping up in the app-switcher screen"), the app will be suspended in the background after 30 seconds.
However, on specific iOS(iOS 16.5.1~ iOS 17.1.2), when I bring the app to the background, the didUpdateLocation function continues to run. I confirmed that the location was updated for over an hour.
Other iOS didn’t occur the issue under iOS 16.3.1.(Couldn't confirm 16.4)
I wonder if this is normal operation. In addition, I also want to know why it is working differently between iOS versions.
Thanks for your help in advance.