background de location de actualización periódica Swift 3.0 iOS 10

Hago una aplicación que cuando entra en segundo plano necesito que envíe al server algunos datos periódicos. Para despertar del background, uso la location significativa de la actualización de background (batería más baja). Me di count de que la location se actualiza cuando la célula del teléfono de wifi / 3g o cuando 3g cambia la torre celular, pero mi problema es que si el usuario no se mueve (y luego la torre celular no cambia), la location no se actualiza y el La aplicación no se activa y luego no puedo enviar datos al server.

¿Conoces algún método para resolver este problema?

Hago todos los que están en el file AppDelegate:

class AppDelegate: UIResponder, UIApplicationDelegate , CLLocationManagerDelegate{ var manager = CLLocationManager() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { manager.desinetworkingAccuracy = kCLLocationAccuracyBest manager.delegate = self manager.requestAlwaysAuthorization() manager.allowsBackgroundLocationUpdates = true return true } func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){ sendDataToServer() } func applicationDidEnterBackground(_ application: UIApplication) { manager.startMonitoringSignificantLocationChanges() } } 

El evento de cambio de location significativo solo se activa cuando hay un cambio de location (es decir, cambio de torre celular). Debería utilizar la búsqueda de background en lugar de cambiar la location para reactivar la aplicación si lo que necesita es download o cargar datos periódicamente:

 application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum) 

luego manejar

 func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 

¿Has probado esto:

https://github.com/paleksandrs/APScheduledLocationManager

Máximo 180s con tarea de background.