2017-10-11 4 views
0

J'ai ajouté dans .plist les 3 clés possibles:Impossible d'obtenir la mise à jour de l'emplacement de fond sur iOS 11

Confidentialité - Lieu Toujours et lors de l'utilisation Utilisation Description de

Confidentialité - Emplacement En cas d'utilisation Utilisation Description

confidentialité - Lieu Utilisation Description

Mon code est:

private lazy var locationManager: CLLocationManager = { 
    let manager = CLLocationManager() 
    manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
    manager.delegate = self 
    manager.requestAlwaysAuthorization() 
    return manager 
    }() 

@IBAction func enabledLocationUpdate(_ sender: UISwitch) { 
    if sender.isOn { 
     locationManager.startUpdatingLocation() 
    } else { 
     locationManager.stopUpdatingLocation() 
    } 
    } 

extension LocationViewController: CLLocationManagerDelegate { 

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    guard let mostRecentLocation = locations.last else { 
     return 
    } 


    NSLog("New location is \(mostRecentLocation)") 
} 

Lorsque l'application en premier plan, je peux voir les mises à jour de localisation, mais quand j'ai appuyé sur le bouton d'accueil - mises à jour de localisation arrêté. Qu'est-ce que je fais mal?

Xcode version 9.0 (9A235) iOS 11.0.2

Répondre

2

Vous pourriez manquer deux choses:

  1. Set allowsBackgroundLocationUpdates-YES sur l'objet CLLocationManager. Voir Apple Documentation
  2. Activez "location" comme mode d'arrière-plan dans votre fichier Info.plist. Voir Apple Documentation
+0

permetBackgroundLocationUpdates - Je l'ai manqué – daleijn