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

Why does this error occur?

MQLN
  • 2,292
  • 2
  • 18
  • 33
  • good question - I've seen the same error sometimes. I believe it happens when the location manager fails to get the current location - e.g. because a good enough fix isn't available. But, I've seen it at times after it *has* got a good fix, then later on this error pops up. – frankodwyer Sep 14 '09 at 19:31
  • 1
    For me it was, that I had used a comma instead of a point for the custom location decimal separator. – electronix384128 Sep 14 '14 at 16:30
  • I was having same issue, set the accuracy to kCLLocationAccuracyBest or some large value, ignore the error and wait for more updates. – zaheer Oct 15 '14 at 07:20

15 Answers15

173

This error occurs if you have Scheme/Edit Scheme/Options/Allow Location Simulation checked but don't have a default location set. I'm sure there are other causes as well though.

Undistraction
  • 42,754
  • 56
  • 195
  • 331
  • 1
    Thanks, but my question is if we set default location does it effect the device location update? – sKhan Jun 18 '13 at 07:43
  • @ShafKhan Don't answer questions in the comments. Ask it as a new question. – Undistraction Jun 18 '13 at 10:18
  • 9
    If you are wondering where is SCHEME follow this link https://developer.apple.com/library/mac/recipes/xcode_help-scheme_editor/Articles/SchemeDialog.html – Bishal Ghimire Jun 26 '14 at 01:39
  • I still had to "Reset Content and Settings" to get the delegate to call didUpdate instead of didFail after setting a default location in the scheme editor. Then it worked fine. – owenfi Sep 09 '15 at 21:26
  • This totally solves my problem! Thank you very much. – Ifelere Bolaji Sep 14 '16 at 13:57
  • Some has tested on a REAL device? This does not solve the problem – fsalazar_sch Aug 09 '17 at 05:24
  • I ran into this using Xamarin.iOS and I resolved it by making sure I had a default location set in the simulator settings. – bcr May 26 '20 at 03:19
45

UPDATE

THANKS TO Ben Marten You can make it permanent using these steps in XCode:

  1. Product > Scheme > Edit Scheme
  2. Click Run .app
  3. Option tab
  4. Already checked Core Location > select your location
  5. Press OK

Besides that, even if you are not connected to wifi, you can set a location in simulator through top menu items Debug>Location and to make it permanent follow steps above

location error in ios simulator

Community
  • 1
  • 1
Vaibhav Saran
  • 12,848
  • 3
  • 65
  • 75
34

I just had this problem. Took me a while to find the solution, which is only loosely related to the previous poster's answer.

Airport (WiFi) must be on for CoreLocation in the iPhone/iPad Simulator to work. I was connected via Ethernet so CL didn't do anything in the Simulator. Turn on Airport in your Network Settings and try again. You can change the order of your network interfaces by dragging Airport below Ethernet if you want to continue favoring your wired connection over your wireless...

Meltemi
  • 37,979
  • 50
  • 195
  • 293
  • 2
    I have this error, and my computer is connected to internet trough WiFi. Also, if I'm not mistaken, the Simulator does not resolve the location, uses always Apple Office location. When using MapKit framework, the blue dot shows, so the location is set. It doesnt make much sense. – Alex Angelico Dec 26 '10 at 22:54
  • 1
    I just turned it on, its not the first in my network list, and everything started working (Lion, XC 4.2) – David H Nov 16 '11 at 19:32
  • 1
    I had the same problem, but not on simulator, on device ! (iPhone 5S, iOS 8.1.3). I was debugging an application with MapKit & CoreLocation, and both frameworks returned always the same error. Until I turned the Wifi on ! Thanks :) – Vinzzz Feb 18 '15 at 08:49
13

From the API docs:

CLError

Error codes returned by the location manager object.

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

Constants

kCLErrorLocationUnknown The location manager was unable to obtain a location value right now.Available in iPhone OS 2.0 and later. Declared in CLError.h.

kCLErrorDenied Access to the location service was denied by the user. Available in iPhone OS 2.0 and later. Declared in CLError.h.

kCLErrorNetwork The network was unavailable or a network error occurred. Available in iPhone OS 3.0b and later. Declared in CLError.h.

kCLErrorHeadingFailure The heading could not be determined. Available in iPhone OS 3.0 and later. Declared in CLError.h.

So this means the location could not be determined.

I would guess the most likely cause is that the location manager is using WiFi to triangulate the location, and the database doesn't cover the local networks. That apparently can be fixed by the user if they go here.

However as I noted I have also seen this occasionally as a transient error when running a location based program in a location where the WiFi location stuff normally works.

Lastly I guess it is possible to see this error if there is some kind of hardware failure.

frankodwyer
  • 13,948
  • 9
  • 50
  • 70
4

If you got this in Emulator then do following

Debug > Location > ✓ Apple

emulator instruction

Hitesh Chavda
  • 772
  • 1
  • 9
  • 25
4

1) check that you actually have a valid WiFi and 3G connection

if you do then

2) go to settings and reset your location services 3) reset your network settings

MeM
  • 1,182
  • 1
  • 9
  • 3
  • I still don’t understand why I cant get location without wifi or 3g on iPad when testing, why GPS is not used ? So user on device cant get location without internet ? I am working also on offline mode app... – Renetik Jul 06 '13 at 10:28
  • As far as i Know GPS doesn't need either internet or wifi connection.It's just a receiver if it is in accessible location with 2 or 3 of GPS satellites we can get the geo location coordinates.We need to worry about internet connection only if the GeoInformation is needed for any online activity such as google maps which depends on internet to show map locations that are not locally cached.Dedicated Navigation applications such as CoPilot keep the maps onboard. – Durai Amuthan.H Dec 06 '13 at 07:14
3

The exact reason what I have found is there is a conflict occuring in the location simulation in both the ios simulator “Debug settings” and in the xcode settings “Edit schemes”.Ensure to set you default user location in any one of this and mark the other to None solved the problem hope this might help for sure. InXcode:enter image description here

In iphone/ipad simulator:enter image description here

Super Xtreem
  • 187
  • 1
  • 10
3

This error is thrown when Location Manager is unable to get location information immediately. I found that this error was occurring when startUpdatingLocation method was called. For me, this was happening on iPod but not on iPhone. That makes sense, since, iPhone has more ways (like cellular network) to get location information and is able get a quick estimate on the location whereas iPod takes more time which caused this error to be raised on iPod.

Since, when this error is thrown locationManager:didFailWithError: delegate method is called, one can handle this specific case in a conditional statement by matching "[error domain]" and "[error code]" from the error object passed to this method.

Vishal Chaudhry
  • 2,834
  • 1
  • 22
  • 8
1

You can add your own list of locations to Xcode to test your applications with.

From within Xcode select the menu Debug/Simulate Location and you'll be offered:

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

Select "Add GPX File to Project..." and select the GPX file you've created.

Carl
  • 2,896
  • 2
  • 32
  • 50
0

Go to Xcode project >product>scheme>edit scheme>chek location simulation>set your location> and run app again Hope it will works !

Janisar
  • 31
  • 5
0

Thanks to this article (https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/) I got a hint to look at the data on my custom GPX file and there found the issue.

Some GPX files you might get from different sources might have the following elements indicating the different coordinates in specified path. This wont work with Xcode's Location Simulation.

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

What you should do is find all occurrences of the "trkpt" element and replace it with "wpt" in your favorite text/xml editor. The end result should be something as follows:

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

Hope this helps! It certainly helped me.

Nino
  • 21
  • 3
0

This error occur while you run your program ,but you simulate location after you run the programe.

I get a method :quit your simulator and restart it ,then set your simulator location before you run the programe,and it works for me .

Hope this helps! It certainly helped me. thanks...

Matiji66
  • 709
  • 7
  • 14
0

all of this didn't work for me.. what worked for me is :- set the location from the simulator to none then change it back to custom location while the app is running.

DeyaEldeen
  • 10,847
  • 10
  • 42
  • 75
0

All of the suggestions didn't help in my case. What helped was to uninstall the app from the simulator device, reinstall it and allow it to access the location (in the settings app).

Niklas D
  • 21
  • 4
-1

If you are getting this on the device, chances are you did not ask for or the user denied the permission to gather the location.

DrMickeyLauer
  • 4,455
  • 3
  • 31
  • 67