Error del administrador de ubicación: (error 0 de KCLErrorDomain)

95
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)

¿Por qué ocurre este error?

MQLN
fuente
buena pregunta: he visto el mismo error a veces. Creo que sucede cuando el administrador de ubicación no puede obtener la ubicación actual, por ejemplo, porque no hay disponible una solución suficientemente buena. Pero, lo he visto a veces después de que tiene una buena solución, luego aparece este error.
frankodwyer
1
Para mí fue que había usado una coma en lugar de un punto para el separador decimal de ubicación personalizada.
electronix384128
Estaba teniendo el mismo problema, establezca la precisión en kCLLocationAccuracyBest o algún valor grande, ignore el error y espere más actualizaciones.
zaheer

Respuestas:

163

Este error se produce si ha Scheme/Edit Scheme/Options/Allow Location Simulationmarcado pero no ha configurado una ubicación predeterminada. Estoy seguro de que también hay otras causas.

Distracción
fuente
1
Gracias, pero mi pregunta es si establecemos la ubicación predeterminada, ¿afecta la actualización de la ubicación del dispositivo?
sKhan
@ShafKhan No responda preguntas en los comentarios. Hágala como una nueva pregunta.
distracciones
9
Si se pregunta dónde está SCHEME, siga este enlace developer.apple.com/library/mac/recipes/…
Bishal Ghimire
Todavía tenía que "Restablecer contenido y configuración" para que el delegado llamara a didUpdate en lugar de didFail después de establecer una ubicación predeterminada en el editor de esquemas. Entonces funcionó bien.
owenfi
¡Esto resuelve totalmente mi problema! Muchas gracias.
Ifelere Bolaji
42

ACTUALIZAR

GRACIAS A Ben Marten Puedes hacerlo permanente siguiendo estos pasos en XCode:

  1. Producto> Esquema> Editar esquema
  2. Haga clic en Ejecutar .app
  3. Pestaña de opciones
  4. Ya marcó la ubicación principal> seleccione su ubicación
  5. presiona OK

Además de eso, incluso si no está conectado a wifi, puede establecer una ubicación en el simulador a través de los elementos del menú superior Debug>Locationy para que sea permanente, siga los pasos anteriores

error de ubicación en el simulador de ios

Vaibhav Saran
fuente
1
Para hacerlo permanente, en Xcode: Producto / Esquema / Editar esquema ... / Ejecutar / Opciones / Ubicación principal - Marque "Permitir simulación de ubicación" y establezca "Ubicación predeterminada" en "Ninguna"
electronix384128
1
Sísss, funciona. Muchas gracias 😃👍😄😃👌👏💃🙏💃💃. Editando mi pregunta para obtener más conocimientos :)
Vaibhav Saran
33

acabo de tener este problema. Me tomó un tiempo encontrar la solución, que solo está vagamente relacionada con la respuesta del póster anterior.

El aeropuerto (WiFi) debe estar activado para que funcione CoreLocation en el simulador de iPhone / iPad. Estaba conectado a través de Ethernet, por lo que CL no hizo nada en el simulador. Encienda Airport en su configuración de red e intente nuevamente. Puede cambiar el orden de sus interfaces de red arrastrando Airport debajo de Ethernet si desea continuar favoreciendo su conexión por cable sobre su inalámbrica ...

Meltemi
fuente
2
Tengo este error y mi computadora está conectada a Internet a través de WiFi. Además, si no me equivoco, el Simulador no resuelve la ubicación, usa siempre la ubicación de Apple Office. Cuando se usa el marco MapKit, se muestra el punto azul, por lo que se establece la ubicación. No tiene mucho sentido.
Alex Angelico
1
Acabo de encenderlo, no es el primero en mi lista de redes, y todo comenzó a funcionar (Lion, XC 4.2)
David H
1
Tuve el mismo problema, pero no en el simulador, ¡en el dispositivo! (iPhone 5S, iOS 8.1.3). Estaba depurando una aplicación con MapKit & CoreLocation, y ambos marcos devolvieron siempre el mismo error. ¡Hasta que encendí el Wifi! Gracias :)
Vinzzz
13

De los documentos de la API:

CLError

Códigos de error devueltos por el objeto del administrador de ubicación.

typedef enum {kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure} CLError;

Constantes

kCLErrorLocationUnknown El administrador de ubicación no pudo obtener un valor de ubicación en este momento. Disponible en iPhone OS 2.0 y posterior. Declarado en CLError.h.

kCLErrorDenied El usuario denegó el acceso al servicio de ubicación. Disponible en iPhone OS 2.0 y posterior. Declarado en CLError.h.

kCLErrorNetwork La red no estaba disponible o se produjo un error de red. Disponible en iPhone OS 3.0by posterior. Declarado en CLError.h.

kCLErrorHeadingFailure No se pudo determinar el encabezado. Disponible en iPhone OS 3.0 y posterior. Declarado en CLError.h.

Esto significa que no se pudo determinar la ubicación.

Supongo que la causa más probable es que el administrador de ubicación está usando WiFi para triangular la ubicación y la base de datos no cubre las redes locales. Eso aparentemente puede ser arreglado por el usuario si va aquí .

Sin embargo, como señalé, también he visto esto ocasionalmente como un error transitorio al ejecutar un programa basado en la ubicación en una ubicación donde las cosas de la ubicación WiFi normalmente funcionan.

Por último, supongo que es posible ver este error si hay algún tipo de falla de hardware.

Frankodwyer
fuente
4
Pregunta sobre: ​​KCLErrorDomain
electronix384128
No hay ninguna referencia a kCLErrorDomain en esta respuesta, que es lo que está buscando el OP.
Norman H
5

1) comprueba que tienes una conexión WiFi y 3G válida

si lo haces entonces

2) vaya a la configuración y restablezca sus servicios de ubicación 3) restablezca su configuración de red

MeM
fuente
Sigo sin entender por qué no puedo obtener la ubicación sin wifi o 3g en el iPad durante la prueba, ¿por qué no se usa el GPS? Entonces, ¿el usuario en el dispositivo no puede obtener la ubicación sin Internet? También estoy trabajando en la aplicación en modo fuera de línea ...
Renetik
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 satélites GPS, podemos obtener las coordenadas de ubicación geográfica. Debemos preocuparnos por la conexión a Internet solo si La información geográfica es necesaria para cualquier actividad en línea, como los mapas de Google, que dependen de Internet para mostrar ubicaciones de mapas que no están almacenadas en caché local. Las aplicaciones de navegación dedicadas, como CoPilot, mantienen los mapas a bordo.
Durai Amuthan. H
3

Este error se produce cuando el Administrador de ubicaciones no puede obtener la información de ubicación de inmediato. Descubrí que este error estaba ocurriendo cuando se llamó al método startUpdatingLocation. Para mí, esto estaba sucediendo en el iPod pero no en el iPhone. Eso tiene sentido, ya que el iPhone tiene más formas (como una red celular) para obtener información de ubicación y puede obtener una estimación rápida de la ubicación, mientras que el iPod tarda más tiempo, lo que provocó que este error se generara en el iPod.

Dado que, cuando se lanza este error, se llama al método locationManager: didFailWithError: delegate, uno puede manejar este caso específico en una declaración condicional haciendo coincidir "[dominio de error]" y "[código de error]" del objeto de error pasado a este método.

Vishal Chaudhry
fuente
3

La razón exacta por la que he encontrado es que hay un conflicto en la simulación de ubicación tanto en el simulador de ios "Configuración de depuración" como en la configuración de xcode "Editar esquemas". Asegúrese de establecer su ubicación de usuario predeterminada en cualquiera de estos y marque el otro a Ninguno resolvió el problema espero que esto pueda ayudar con seguridad. InXcode:ingrese la descripción de la imagen aquí

En el simulador de iphone / ipad:ingrese la descripción de la imagen aquí

Super Xtreem
fuente
3

Si tienes esto en Emulator, haz lo siguiente

Debug > Location >  Apple

instrucción del emulador

Hitesh Chavda
fuente
1

Puede agregar su propia lista de ubicaciones a Xcode para probar sus aplicaciones.

Desde dentro de Xcode, seleccione el menú Depurar / Simular ubicación y se le ofrecerá:

a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."

Seleccione "Agregar archivo GPX al proyecto ..." y seleccione el archivo GPX que ha creado.

Carl
fuente
0

Vaya al proyecto Xcode> producto> esquema> editar esquema> chequear simulación de ubicación> establecer su ubicación> y ejecutar la aplicación nuevamente. ¡Espero que funcione!

Janisar
fuente
0

Gracias a este artículo ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ) recibí una pista para mirar los datos en mi archivo GPX personalizado y encontré el problema.

Algunos archivos GPX que puede obtener de diferentes fuentes pueden tener los siguientes elementos que indican las diferentes coordenadas en la ruta especificada. Esto no funcionará con la simulación de ubicación de Xcode.

<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>

Lo que debe hacer es buscar todas las apariciones del elemento "trkpt" y reemplazarlo con "wpt" en su editor de texto / xml favorito. El resultado final debería ser el siguiente:

<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>

¡Espero que esto ayude! Ciertamente me ayudó.

Nino
fuente
0

Este error se produce mientras ejecuta su programa, pero simula la ubicación después de ejecutar el programa.

Obtengo un método: salga de su simulador y reinícielo, luego configure la ubicación de su simulador antes de ejecutar el programa, y ​​funciona para mí.

¡Espero que esto ayude! Ciertamente me ayudó. Gracias...

Matiji66
fuente
0

todo esto no funcionó para mí ... lo que funcionó para mí es: - establecer la ubicación desde el simulador para noneluego volver a cambiarla a la customubicación mientras la aplicación se está ejecutando.

DeyaEldeen
fuente
0

Todas las sugerencias no ayudaron en mi caso. Lo que ayudó fue desinstalar la aplicación del dispositivo simulador, reinstalarla y permitirle acceder a la ubicación (en la aplicación de configuración).

Niklas D
fuente
-1

Si recibe esto en el dispositivo, es probable que no lo haya solicitado o que el usuario le haya negado el permiso para recopilar la ubicación.

DrMickeyLauer
fuente