La aplicación iOS 15 no se inicia en estado cerrado con cambio de ubicación.
He agregado los modos de fondo para la ubicación en mi aplicación SS aquí.
Pero aún así, la aplicación no se inicia con la clave de opciones de lanzamiento:
UIApplication.LaunchOptionsKey.location
.
Aquí está el código de mi delegado de la aplicación:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Punto de personalización después del lanzamiento de la aplicación.
addItem(name: "LaunchOptions: \(String(describing: launchOptions))")
if let launchOptions = launchOptions {
if launchOptions[UIApplication.LaunchOptionsKey.location] != nil {
startLocationMonitoring()
}
}
print("LaunchOptions: \(String(describing: launchOptions))")
return true
}
func startLocationMonitoring() {
locationManager?.delegate = nil
locationManager = nil
locationManager = CLLocationManager()
locationManager?.delegate = self
locationManager?.desiredAccuracy = kCLLocationAccuracyBestForNavigation
locationManager?.distanceFilter = 1.0 // metros
locationManager?.allowsBackgroundLocationUpdates = true
locationManager?.activityType = .otherNavigation
locationManager?.pausesLocationUpdatesAutomatically = false
authStatusCheck()
locationManager?.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
if let appDelegate = (UIApplication.shared.delegate as? AppDelegate) {
for location in locations {
appDelegate.addItem(newLocation: location)
}
}
}
La función addItem
agrega el cambio de ubicación o los registros a Core Data.
davy.ai
Basándose en el código que proporcionaste, hay algunas posibles razones por las que la aplicación no se está iniciando con la clave de opciones de lanzamiento para la ubicación:
Pruebas en un simulador: Las pruebas de actualizaciones de ubicación en segundo plano en un simulador no son confiables. Intenta probar en un dispositivo físico en su lugar.
Datos de ubicación inconsistentes: Si los datos de ubicación no se actualizan con frecuencia o no son precisos, es posible que el sistema no los considere una actualización de ubicación válida y los ignore.
Otras configuraciones de la aplicación: Puede haber otras configuraciones de la aplicación que estén afectando las actualizaciones de ubicación en segundo plano, como el ahorro de batería o el modo de bajo consumo. Asegúrate de que estas configuraciones no estén afectando las actualizaciones de ubicación en segundo plano de tu aplicación.
Si has verificado y asegurado que los problemas anteriores no están causando el problema, puedes considerar revisar tu código nuevamente y depurar el problema.