¿Cómo obtengo una actualización de ubicación en segundo plano cada n minutos en mi aplicación iOS?

Estoy buscando una manera de obtener una actualización de ubicación en segundo plano cada n minutos en mi aplicación iOS. Estoy usando iOS 4.3 y la solución debería funcionar para iPhone sin jailbreak.

Intenté / consideré las siguientes opciones:

CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges: Esto funciona en segundo plano como se esperaba, en función de las propiedades configuradas, pero parece que no es posible forzarlo a actualizar la ubicación cada n minutosNSTimer: Funciona cuando la aplicación se ejecuta en primer plano, pero no parece estar diseñada para tareas en segundo plano Notificaciones locales: las notificaciones locales se pueden programar cada n minutos, pero no es posible ejecutar algún código para obtener la ubicación actual (sin que el usuario tenga que iniciar la aplicación a través de la notificación). Este enfoque tampoco parece ser un enfoque limpio, ya que esto no es para lo que deberían usarse las notificaciones.UIApplication:beginBackgroundTaskWithExpirationHandler: Según tengo entendido, esto debería usarse para terminar un trabajo en segundo plano (también limitado en el tiempo) cuando una aplicación se mueve al fondo en lugar de implementar procesos en segundo plano "de larga ejecución".

¿Cómo puedo implementar estas actualizaciones periódicas de ubicación en segundo plano?

Respuestas a la pregunta(15)

Su respuesta a la pregunta