Erreur du gestionnaire d'emplacement: (erreur KCLErrorDomain 0)

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

Pourquoi cette erreur se produit-elle?

MQLN
la source
bonne question - j'ai vu la même erreur parfois. Je crois que cela se produit lorsque le gestionnaire d'emplacement ne parvient pas à obtenir l'emplacement actuel - par exemple, parce qu'un correctif assez bon n'est pas disponible. Mais, je l'ai vu parfois après avoir obtenu une bonne solution, puis plus tard, cette erreur apparaît.
frankodwyer le
1
Pour moi, c'était que j'avais utilisé une virgule au lieu d'un point pour le séparateur décimal d'emplacement personnalisé.
electronix384128
J'avais le même problème, définissez la précision sur kCLLocationAccuracyBest ou une valeur importante, ignorez l'erreur et attendez plus de mises à jour.
zaheer

Réponses:

163

Cette erreur se produit si vous avez Scheme/Edit Scheme/Options/Allow Location Simulationvérifié mais que vous n'avez pas défini d'emplacement par défaut. Je suis sûr qu'il y a aussi d'autres causes.

Undistraction
la source
1
Merci, mais ma question est de savoir si nous définissons l'emplacement par défaut, cela affecte-t-il la mise à jour de l'emplacement de l'appareil?
sKhan
@ShafKhan Ne répondez pas aux questions dans les commentaires. Posez-la comme une nouvelle question.
Undistraction
9
Si vous vous demandez où est SCHEME suivez ce lien developer.apple.com/library/mac/recipes
...
Je devais encore "Réinitialiser le contenu et les paramètres" pour que le délégué appelle didUpdate au lieu de didFail après avoir défini un emplacement par défaut dans l'éditeur de schéma. Ensuite, cela a bien fonctionné.
owenfi
Cela résout totalement mon problème! Merci beaucoup.
Ifelere Bolaji le
42

METTRE À JOUR

MERCI À Ben Marten Vous pouvez le rendre permanent en utilisant ces étapes dans XCode:

  1. Produit> Schéma> Modifier le schéma
  2. Cliquez sur Exécuter .app
  3. Onglet Option
  4. Emplacement principal déjà coché> sélectionnez votre emplacement
  5. appuyer sur OK

En outre, même si vous n'êtes pas connecté au wifi, vous pouvez définir un emplacement dans le simulateur via les éléments du menu supérieur Debug>Locationet le rendre permanent, suivez les étapes ci-dessus.

erreur de localisation dans le simulateur ios

Vaibhav Saran
la source
1
Pour le rendre permanent, dans Xcode: Product / Scheme / Edit Scheme ... / Exécuter / Options / Core Location - Cochez "Allow Location Simulation" & Réglez "Default Location" sur "None"
electronix384128
1
Oui, ça marche. Merci beaucoup 😃👍😄😃👌👏💃🙏💃💃. Modifier ma question pour plus de connaissances :)
Vaibhav Saran
33

J'ai juste eu ce problème. Il m'a fallu un certain temps pour trouver la solution, qui n'est que vaguement liée à la réponse de l'affiche précédente.

Airport (WiFi) doit être activé pour que CoreLocation dans le simulateur iPhone / iPad fonctionne. J'étais connecté via Ethernet donc CL n'a rien fait dans le simulateur. Activez Airport dans vos paramètres réseau et réessayez. Vous pouvez modifier l'ordre de vos interfaces réseau en faisant glisser Airport sous Ethernet si vous souhaitez continuer à favoriser votre connexion filaire sur votre réseau sans fil ...

Meltemi
la source
2
J'ai cette erreur et mon ordinateur est connecté à Internet via WiFi. De plus, si je ne me trompe pas, le simulateur ne résout pas l'emplacement, utilise toujours l'emplacement Apple Office. Lors de l'utilisation du framework MapKit, le point bleu s'affiche, donc l'emplacement est défini. Cela n'a pas beaucoup de sens.
Alex Angelico du
1
Je viens de l'allumer, ce n'est pas le premier de ma liste de réseaux, et tout a commencé à fonctionner (Lion, XC 4.2)
David H
1
J'ai eu le même problème, mais pas sur simulateur, sur appareil! (iPhone 5S, iOS 8.1.3). Je déboguais une application avec MapKit & CoreLocation, et les deux frameworks renvoyaient toujours la même erreur. Jusqu'à ce que j'active le Wifi! Thanks :)
Vinzzz
13

À partir de la documentation de l'API:

CLError

Codes d'erreur renvoyés par l'objet du gestionnaire d'emplacement.

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

Constantes

kCLErrorLocationUnknown Le gestionnaire d'emplacement n'a pas pu obtenir une valeur d'emplacement pour le moment. Disponible dans iPhone OS 2.0 et versions ultérieures. Déclaré dans CLError.h.

kCLErrorDenied L'accès au service de localisation a été refusé par l'utilisateur. Disponible dans iPhone OS 2.0 et versions ultérieures. Déclaré dans CLError.h.

kCLErrorNetwork Le réseau n'était pas disponible ou une erreur réseau s'est produite. Disponible dans iPhone OS 3.0b et versions ultérieures. Déclaré dans CLError.h.

kCLErrorHeadingFailure L'en-tête n'a pas pu être déterminé. Disponible dans iPhone OS 3.0 et versions ultérieures. Déclaré dans CLError.h.

Cela signifie donc que l'emplacement n'a pas pu être déterminé.

Je suppose que la cause la plus probable est que le gestionnaire d'emplacement utilise le WiFi pour trianguler l'emplacement et que la base de données ne couvre pas les réseaux locaux. Cela peut apparemment être résolu par l'utilisateur s'il va ici .

Cependant, comme je l'ai noté, j'ai également vu cela occasionnellement comme une erreur transitoire lors de l'exécution d'un programme basé sur l'emplacement dans un endroit où les éléments de localisation WiFi fonctionnent normalement.

Enfin, je suppose qu'il est possible de voir cette erreur s'il y a une sorte de panne matérielle.

Frankodwyer
la source
4
Il demande à propos de: KCLErrorDomain
electronix384128
Il n'y a aucune référence à kCLErrorDomain dans cette réponse qui est ce que l'OP recherche.
Norman H
5

1) Vérifiez que vous disposez bien d'une connexion WiFi et 3G valide

si tu fais alors

2) allez dans les paramètres et réinitialisez vos services de localisation 3) réinitialisez vos paramètres réseau

MeM
la source
Je ne comprends toujours pas pourquoi je ne peux pas obtenir de localisation sans wifi ou 3G sur iPad lors des tests, pourquoi le GPS n'est pas utilisé? Donc, l'utilisateur sur l'appareil ne peut pas obtenir l'emplacement sans Internet? Je travaille également sur l'application en mode hors ligne ...
Renetik
Pour autant que je sache, le GPS n'a pas besoin de connexion Internet ou wifi.C'est juste un récepteur s'il est dans un endroit accessible avec 2 ou 3 satellites GPS, nous pouvons obtenir les coordonnées de géolocalisation.Nous devons nous soucier de la connexion Internet uniquement si les informations géographiques sont nécessaires pour toute activité en ligne telle que google maps qui dépend d'Internet pour afficher les emplacements cartographiques qui ne sont pas mis en cache localement. Les applications de navigation dédiées telles que CoPilot gardent les cartes à bord.
Durai Amuthan.H
3

Cette erreur est générée lorsque Location Manager ne peut pas obtenir immédiatement les informations de localisation. J'ai trouvé que cette erreur se produisait lors de l'appel de la méthode startUpdatingLocation. Pour moi, cela se passait sur iPod mais pas sur iPhone. Cela a du sens, car l'iPhone dispose de plus de moyens (comme le réseau cellulaire) pour obtenir des informations de localisation et peut obtenir une estimation rapide de l'emplacement, tandis que l'iPod prend plus de temps, ce qui a provoqué le déclenchement de cette erreur sur l'iPod.

Puisque, lorsque cette erreur est lancée locationManager: didFailWithError: la méthode Delegate est appelée, on peut gérer ce cas spécifique dans une instruction conditionnelle en faisant correspondre "[domaine d'erreur]" et "[code d'erreur]" de l'objet d'erreur passé à cette méthode.

Vishal Chaudhry
la source
3

La raison exacte de ce que j'ai trouvé est qu'il y a un conflit dans la simulation d'emplacement à la fois dans le simulateur ios "Paramètres de débogage" et dans les paramètres xcode "Modifier les schémas". l'autre à Aucun résolu le problème espérons que cela pourrait aider à coup sûr. InXcode:entrez la description de l'image ici

Dans le simulateur iphone / ipad:entrez la description de l'image ici

Super Xtreem
la source
3

Si vous avez cela dans Emulator, procédez comme suit

Debug > Location >  Apple

instruction d'émulateur

Hitesh Chavda
la source
1

Vous pouvez ajouter votre propre liste d'emplacements à Xcode pour tester vos applications.

Depuis Xcode, sélectionnez le menu Déboguer / Simuler l'emplacement et il vous sera proposé:

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

Sélectionnez "Ajouter un fichier GPX au projet ..." et sélectionnez le fichier GPX que vous avez créé.

Carl
la source
0

Accédez au projet Xcode> produit> schéma> modifier le schéma> vérifier la simulation d'emplacement> définir votre emplacement> et exécuter à nouveau l'application J'espère que cela fonctionnera!

Janisar
la source
0

Grâce à cet article ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ), j'ai eu un indice pour regarder les données sur mon fichier GPX personnalisé et j'ai trouvé le problème.

Certains fichiers GPX que vous pouvez obtenir de différentes sources peuvent avoir les éléments suivants indiquant les différentes coordonnées dans le chemin spécifié. Cela ne fonctionnera pas avec la simulation de localisation de Xcode.

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

Ce que vous devez faire est de trouver toutes les occurrences de l'élément "trkpt" et de le remplacer par "wpt" dans votre éditeur de texte / XML préféré. Le résultat final devrait être quelque chose comme suit:

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

J'espère que cela t'aides! Cela m'a certainement aidé.

Nino
la source
0

Cette erreur se produit lorsque vous exécutez votre programme, mais que vous simulez l'emplacement après avoir exécuté le programme.

J'obtiens une méthode: quittez votre simulateur et redémarrez-le, puis définissez l'emplacement de votre simulateur avant d'exécuter le programme, et cela fonctionne pour moi.

J'espère que cela t'aides! Cela m'a certainement aidé. Merci...

Matiji66
la source
0

tout cela n'a pas fonctionné pour moi .. ce qui a fonctionné pour moi est: - définir l'emplacement du simulateur pour nonele changer ensuite à l' customemplacement pendant que l'application est en cours d'exécution.

DeyaEldeen
la source
0

Toutes les suggestions n'ont pas aidé dans mon cas. Ce qui a aidé était de désinstaller l'application du simulateur, de la réinstaller et de lui permettre d'accéder à l'emplacement (dans l'application des paramètres).

Niklas D
la source
-1

Si vous obtenez cela sur l'appareil, il est probable que vous ne l'ayez pas demandé ou que l'utilisateur ait refusé l'autorisation de collecter l'emplacement.

DrMickeyLauer
la source