web-dev-qa-db-fra.com

arrêt du service de localisation en arrière-plan ios12

J'ai une application qui suit continuellement l'emplacement de l'appareil en arrière-plan . Cela fonctionnait plutôt bien sous iOS 11.4, où je pouvais laisser exécuter l'application en arrière-plan pendant des jours tout en effectuant d'autres tâches à l'avant-plan.

Désormais, avec l'application iOS 12, l'application cesse de s'exécuter après un certain temps, lorsque l'appareil est laissé seul.

LocationManager est initialisé comme suit:

locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.startUpdatingHeading()
locationManager.allowsBackgroundLocationUpdates = false
locationManager.pausesLocationUpdatesAutomatically = false
if #available(iOS 11.0, *)
{
    locationManager.showsBackgroundLocationIndicator = true
} 
locationManager.distanceFilter = prefs.getDoubleFromString(Prefs.PREF_DISTANCE_FILTER, defaultVal: 2.5)

Lorsque l'utilisateur décide de commencer le suivi 

locationManager.allowsBackgroundLocationUpdates = true

est réglé.

L'application dispose du privilège "Toujours" pour le service de localisation.

Une idée de ce qui a changé dans iOS 12?

8
Michael Konz

Cela semble être un bug depuis iOS 12 que les applications seront terminées en arrière-plan sans raison valable. J'ai rempli un rapport de bogue.

Voir pour plus d'informations et un projet de démonstration pour illustrer le problème ici: iOS 12 ferme les applications en arrière-plan sans raison

Bug corrigé dans iOS 12.2 beta 2 (16E5191d)

4
Sjoerd Perfors

J'ai cette question aussi, et j'essaie d'éteindre le "Ne pas déranger" la nuit dernière, le service de localisation en arrière-plan fonctionne bien.

Ainsi, le mode "Ne pas déranger" peut arrêter le service de localisation?

N'importe quel autre moyen d'éviter l'arrêt du service de localisation, sauf désactiver "Ne pas déranger"?

1
AntScript