didFailWithError: Error Domain = kCLErrorDomain Code = 0 “No se pudo completar la operación. (error 0 de kCLErrorDomain) "

82

Quiero obtener la ubicación actual, pero en su lugar aparece un error.

Este es un fragmento de mi controlador de vista.

- (void)viewDidLoad {
    self.locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
    [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager 
     didUpdateLocations:(NSArray<CLLocation *> *)locations {
    // I would get the latest location here
    // but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error {
    NSLog(@"didFailWithError: %@", error);
}

Espero locationManager:didUpdateLocations:que se llame al método delegado , pero en cambio, solo locationManager:didFailWithError:se llama e imprime esto:

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 
Luca
fuente
Puede utilizar una API de Google como alternativa. Consulte mi respuesta aquí stackoverflow.com/a/40670608/2033377
Deepak Thakur

Respuestas:

106
  1. Comprueba que tienes una conexión WiFi y 3G válida

    ... si lo hace, entonces:

  2. Vaya a la configuración y restablezca sus servicios de ubicación

  3. Restablecer la configuración de su red

Esto debería solucionar ese problema. Está relacionado con el dispositivo / red, no con la aplicación. Es molesto especialmente si su aplicación depende de los servicios de ubicación y el dispositivo es solo WiFi y la gente da calificaciones negativas en la AppStore ... Perdón, me estoy poniendo un poco emocional.

MeM
fuente
2
Hasta donde yo sé, el GPS no necesita conexión a Internet o wifi. Es solo un receptor si está en una ubicación accesible con 2 o 3 de los satélites GPS, podemos obtener las coordenadas de ubicación geográfica. sin conexión a internet o wifi?
Durai Amuthan. H
2
Un voto a favor por señalar el restablecimiento de los servicios de ubicación y la configuración de red
Durai Amuthan. H
3
No debería tener que seguir estos pasos. Simplemente ignore este error y espere más actualizaciones. Vea mi respuesta a continuación o vea los documentos en developer.apple.com/library/ios/documentation/corelocation/… :
Ray Lillywhite
3
Tuve exactamente el mismo problema, mientras jugaba con MapKit y CoreLocation, en mi dispositivo (iPhone 5S, iOS 8.1.3). No pude obtener una ubicación y obtuve el mismo error una y otra vez (a pesar de una buena señal de red móvil). Hasta que encendí el WiFi y todo quedó arreglado. Extraño ... ¡Gracias!
Vinzzz
2
@ DuraiAmuthan.H Los iPads no tienen hardware GPS real. Usan una base de datos de direcciones MAC wifi para determinar su ubicación.
whoKnows
146

Si está utilizando el simulador:

  1. Presione command + shift + ,en Xcode para abrir el editor de esquemas
  2. Seleccione el esquema de ejecución
  3. Vaya a la pestaña Opciones
  4. Comprobar ✅ Allow Location Simulation
  5. Seleccione una ubicación predeterminada en el menú desplegable

La selección Nonecomo ubicación predeterminada puede haber causado el problema.

sKhan
fuente
4
¡Guauu! Gracias, he estado persiguiendo esto durante semanas. Mi aplicación seguía forzando mi iPad o iPhone a la ubicación de Londres, Inglaterra, y no podía entender por qué. Apagué esa opción y el problema desapareció. Tal vez fue un problema al agarrar la ubicación y luego cambiar la ubicación a la del Esquema.
Andrew Smith
7
Me funcionó, pero también tuve que hacerlo iOS Simulator>Reset Content and Settings...
bendytree
Lo clavé para mí.
ScottyBlades
23

Simplemente ignore este error y espere más actualizaciones o un error diferente.

Los documentos del administrador de ubicaciones dicen que este error es temporal. Le informa que no pudo recuperar una ubicación de inmediato, pero sigue intentándolo. "En tal situación, simplemente puede ignorar el error y esperar un nuevo evento". Lo cual es una forma realmente sensata de usar un método llamado locationManager:didFailWithError:- ¡Gracias Apple!

Apple Documentation

Ray Lillywhite
fuente
19

Intente reiniciar el simulador (asumiendo que eso es lo que está usando).

Después de probar todo lo demás, esto funcionó para mí.

Ian
fuente
Trabajó para mí Gracias
Sushil Sharma
Me funcionó a mi también. Gracias
cozmin-calin
14

Un reinicio del simulador no funcionó para mí.

Tuve que limpiar todo vía "iOS Simulator" >> "Reset Content and Settings....

Brandon O'Rourke
fuente
9

Recibí este error en el simulador. Al hacer clic en el botón de ubicación en el panel de depuración y configurar una ubicación, solucionó el problema. (Asegúrese de que el botón sea azul)

ingrese la descripción de la imagen aquí

rounak
fuente
5

Cambiar la "Ubicación" en el simulador funcionó para mí.

Depurar> Ubicación> (El mío se marcó Ninguno en lugar de City Bicycle Ride, por ejemplo)

Raphael Onofre
fuente
5
  1. En el simulador, vaya a Configuración> General> Restablecer> Restablecer ubicación y privacidad

  2. Salga del simulador y vuelva a ejecutar la aplicación

Adam Johns
fuente
3

Suponiendo que está utilizando el simulador, puede Debug -> Locationestablecer una ubicación.

Si no ha seleccionado ninguno, tendrá este error.

Rodrigo González
fuente
2

Si está utilizando un, custom locationasegúrese de tener el largo y el lat de la manera correcta, lo invertí y desperdicié 3 horas antes de darme cuenta ...

Joe Maher
fuente
Ame aquí también he desperdiciado 2 horas, puse la Latitud y Longitud en las posiciones correctas.
Arpit B Parekh
2

He visto el problema antes, hay una manera de resolverlo, pero solo puede funcionar una vez. Si desea ejecutar el proyecto nuevamente y necesita repetir la solución cada vez.

1. En Xcode, Producto -> Esquema -> Editar esquema, luego cancele "Permitir simulador de ubicación".

2.Al simulador de iOS y restablezca el contenido y la configuración.

3. De nuevo al Xcode, repita el primer paso.

4.Al simulador de iOS y reinicie. Entonces funcionará.

HsuChihYung
fuente
1

Problemas como este se pueden resolver configurando la ubicación como " Apple". Al menos funciona con fines de prueba.

Pandurang Yachwad
fuente
1
  1. He reiniciado el contenido y la configuración.
  2. Datos eliminados de datos derivados.
  3. Reinicié Xcode y Simulator y funcionó para mí.

de la respuesta de @Mem y muchas otras gracias

Arpit B Parekh
fuente
1

Para desarrolladores devueltos :) Simplemente seleccione " Debug->Location->Freeway Drive" en el menú del Simulador. Si el problema persiste, intente después de hacer "Simulador-> Restablecer contenido y configuración" desde el menú del simulador. Esto me ayudó una vez con el mismo problema. En algún momento la ubicación del simulador se establece en " Custom location" debido a que no detecta nada.

AzafránEstado
fuente
1

Si está utilizando el Simulador, asegúrese de que el esquema permita la ubicación y de que eligió una ubicación predeterminada.

ingrese la descripción de la imagen aquí

Tal Zion
fuente
0

Probar en el dispositivo. A veces, el simulador no toma su ubicación.

Subho
fuente
0

Ir a casa en simulador

inicio -> Configuración -> Privacidad -> Ubicaciones -> seleccione la aplicación y elija siempre

Pratheesh B
fuente
0

al agregar permiso Privacidad - Ubicación cuando está en uso Descripción de uso en info.plist se resolvió para mí

miguelzolk
fuente