Я использую фоновое обновление местоположения с iOS 9 без проблем, и эта проблема только что появилась в iOS 13. Консоль отладчика выявляет эту проблему, когда приложение входит в фоновый режим: «Не удается завершить BackgroundTask: фоновая задача с идентификатором 3 (0x3) не существует или, возможно, она уже завершена. Перерыв в UIApplicationEndBackgroundTaskError () для отладки. "
Вот как шаблонный код для обновлений местоположения в фоновом режиме:
Во-первых, код в AppDelegate:
if CLLocationManager.authorizationStatus() == .notDetermined {
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
}
info.plist:
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>"MY APP" is optimized to run in the background as well as when your using it directly. For best results, choose ALWAYS.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>"MY APP" is optimized to run in the background. Please choose ALLOW.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Please choose ALLOW WHILE USING APP. "MY APP" needs to use your location to get its altitude data.</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
Насколько я могу судить, ничто не должно вызывать эту проблему. И почему это только началось, не имеет смысла.