La aplicación solicita la ubicación justo después del primer inicio.
Tengo una aplicación que utiliza servicios de ubicación.
En el primer inicio, quiero que el usuario presione el botón para activar los servicios de ubicación (lo que muestra el cuadro de diálogo del sistema que solicita los permisos de ubicación).
override func viewDidLoad() {
super.viewDidLoad()
if firstLaunch {
showPermissionsView()
} else {
locationManager = CLLocationManager()
locationManager?.delegate = self
locationManager?.requestWhenInUseAuthorization()
}
}
El problema aquí es que cuando hago una instalación nueva para depurar, el sistema solicita los permisos de ubicación de inmediato en el primer inicio. Esto sucede antes de que el usuario presione el botón.
Algunas notas:
- La aplicación no tiene ningún
CLLocationManager()
en ninguna otra parte del proyecto. - La aplicación tiene un objetivo de Widget que utiliza la ubicación (no estoy seguro si está conectado aquí).
self.locationManager
ni siquiera se ha iniciado ni llamado cuando el sistema solicita los permisos de ubicación.
davy.ai
Parece que el problema no está en el código mostrado en la pregunta. Puede haber algo más que desencadena el cuadro de diálogo del sistema que solicita permisos de ubicación en el primer lanzamiento.
Algunas posibles razones podrían ser:
Para solucionar este problema, recomendaría:
Una vez que se identifique el problema, el código en la pregunta se puede ajustar en consecuencia, por ejemplo, mostrando la vista de permisos solo si el objetivo del Widget no está instalado o verificando si la aplicación ya ha sido otorgada permisos de ubicación.