Konum Yöneticisi Hatası: (KCLErrorDomain hatası 0)


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

Bu hata neden oluşur?


güzel soru - Bazen aynı hatayı gördüm. Konum yöneticisi mevcut konumu alamadığında bunun olacağına inanıyorum - örneğin yeterince iyi bir düzeltme mevcut olmadığı için. O Ama sonra, ben zaman zaman gördüm etti daha sonra bu hata açılır üzerinde, iyi bir düzeltme var.
frankodwyer

1
Benim için, özel konum ondalık ayırıcısı için nokta yerine virgül kullanmıştım.
Electronix384128

Aynı sorunu yaşıyordum, doğruluğu kCLLocationAccuracyBest veya daha büyük bir değere ayarladım, hatayı yok saydım ve daha fazla güncelleme için bekledim.
zaheer

Yanıtlar:


164

Bu hata, Scheme/Edit Scheme/Options/Allow Location Simulationkontrol ettiyseniz ancak varsayılan bir konum ayarınız yoksa oluşur . Eminim başka nedenleri de vardır.


1
Teşekkürler, ancak sorum şu ki, varsayılan konumu ayarlarsak, cihaz konum güncellemesini etkiler mi?
sKhan

@ShafKhan Yorumlarda soruları cevaplamayın. Bunu yeni bir soru olarak sorun.
Undistraction


Şema düzenleyicide varsayılan bir konum ayarladıktan sonra temsilcinin didFail yerine didUpdate'i çağırmasını sağlamak için yine de "İçeriği ve Ayarları Sıfırla" yapmam gerekiyordu. Sonra iyi çalıştı.
owenfi

Bu, sorunumu tamamen çözdü! Çok teşekkür ederim.
Ifelere Bolaji

42

GÜNCELLEME

Ben Marten'A TEŞEKKÜRLER XCode'daki şu adımları kullanarak bunu kalıcı hale getirebilirsiniz:

  1. Ürün> Şema> Şemayı Düzenle
  2. App Çalıştır'ı tıklayın
  3. Seçenek sekmesi
  4. Zaten kontrol edildi Çekirdek Konum> konumunuzu seçin
  5. tamam tuşuna basın

Bunun yanı sıra, wifi'ye bağlı olmasanız bile, simülatörde üst menü öğelerinden bir konum Debug>Locationbelirleyebilir ve bunu kalıcı hale getirmek için yukarıdaki adımları takip edebilirsiniz.

ios simülatöründe konum hatası


1
Kalıcı hale getirmek için, Xcode'da: Ürün / Şema / Şemayı Düzenle ... / Çalıştır / Seçenekler / Çekirdek Konum - "Konum Simülasyonuna İzin Ver" seçeneğini işaretleyin ve "Varsayılan Konum" u "Yok" olarak ayarlayın
elektronix384128

1
Yessss, işe yarıyor. Çok teşekkür ederim ??? Daha fazla bilgi için sorumu düzenleyerek :)
Vaibhav Saran

33

Bu sorunu daha yeni yaşadım. Çözümü bulmam biraz zaman aldı, bu da önceki posterin cevabıyla sadece gevşek bir şekilde ilişkili.

İPhone / iPad Simülatöründe CoreLocation'ın çalışması için Havaalanı (WiFi) açık olmalıdır . Ethernet üzerinden bağlandım, bu yüzden CL Simülatörde hiçbir şey yapmadı. Ağ Ayarlarınızdan Airport'u açın ve tekrar deneyin. Kablosuz bağlantınız yerine kablolu bağlantınızı tercih etmeye devam etmek istiyorsanız, Airport'u Ethernet'in altına sürükleyerek ağ arayüzlerinizin sırasını değiştirebilirsiniz ...


2
Bu hatayı alıyorum ve bilgisayarım WiFi üzerinden internete bağlı. Ayrıca yanılmıyorsam Simülatör konumu çözmez, her zaman Apple Office konumunu kullanır. MapKit çerçevesini kullanırken mavi nokta gösterilir, böylece konum ayarlanır. Bu pek mantıklı değil.
Alex Angelico

1
Bunu yeni açtım, ağ listemdeki ilk değil ve her şey çalışmaya başladı (Lion, XC 4.2)
David H

1
Aynı problemi yaşadım ama simülatörde değil, cihazda! (iPhone 5S, iOS 8.1.3). MapKit & CoreLocation ile bir uygulamada hata ayıklama yapıyordum ve her iki çerçeve de her zaman aynı hatayı döndürdü. Wifi'yi açana kadar! Teşekkürler :)
Vinzzz

13

API belgelerinden:

CLError

Konum yöneticisi nesnesi tarafından döndürülen hata kodları.

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

Sabitler

kCLErrorLocationUnknown Konum yöneticisi şu anda bir konum değeri elde edemedi. iPhone OS 2.0 ve sonraki sürümlerde mevcuttur. CLError.h'de bildirilmiştir.

kCLErrorDenied Konum servisine erişim kullanıcı tarafından reddedildi. İPhone OS 2.0 ve sonraki sürümlerde mevcuttur. CLError.h'de bildirilmiştir.

kCLErrorNetwork Ağ kullanılamıyordu veya bir ağ hatası oluştu. İPhone OS 3.0b ve sonraki sürümlerde mevcuttur. CLError.h'de bildirilmiştir.

kCLErrorHeadingFailure Başlık belirlenemedi. İPhone OS 3.0 ve sonrasında mevcuttur. CLError.h'de bildirilmiştir.

Yani bu, konumun belirlenemediği anlamına gelir.

Sanırım en olası neden, konum yöneticisinin konumu üçgenlemek için WiFi kullanıyor olması ve veritabanının yerel ağları kapsamamasıdır. Görünüşe göre bu, buraya giderse kullanıcı tarafından düzeltilebilir .

Ancak belirttiğim gibi, WiFi konum öğelerinin normalde çalıştığı bir konumda konum tabanlı bir program çalıştırırken bunu ara sıra geçici bir hata olarak da gördüm.

Son olarak, bir tür donanım arızası varsa bu hatayı görmek mümkün.


4
Şunu soruyor: KCLErrorDomain
elektronix384128

Bu yanıtta, OP'nin aradığı kCLErrorDomain'e referans yoktur.
Norman H

5

1) Gerçekte geçerli bir WiFi ve 3G bağlantınız olup olmadığını kontrol edin

eğer yaparsan

2) ayarlara gidin ve konum hizmetlerinizi sıfırlayın 3) ağ ayarlarınızı sıfırlayın


Test ederken neden iPad'de wifi veya 3g olmadan konum alamadığımı hala anlamıyorum, GPS neden kullanılmıyor? Yani cihazdaki kullanıcı internet olmadan konum alamıyor mu? Çevrimdışı mod uygulaması üzerinde de çalışıyorum ...
Renetik

Bildiğim kadarıyla GPS, internet veya wifi bağlantısına ihtiyaç duymuyor. 2 veya 3 GPS uydusu ile erişilebilir bir konumdaysa, coğrafi konum koordinatlarını alabiliriz.Sadece bir alıcıdır.İnternet bağlantısı için yalnızca eğer Yerel olarak önbelleğe alınmayan harita konumlarını göstermek için internete bağlı olan google haritalar gibi herhangi bir çevrimiçi etkinlik için GeoInformation gerekir. CoPilot gibi özel Navigasyon uygulamaları haritaları gemide tutar.
Durai Amuthan. H

3

Bu hata, Konum Yöneticisi konum bilgilerini hemen alamadığında atılır. StartUpdatingLocation yöntemi çağrıldığında bu hatanın meydana geldiğini buldum. Benim için bu iPod'da oluyordu ama iPhone'da olmadı. Bu mantıklıdır, çünkü iPhone'un konum bilgisi almak için daha fazla yolu (hücresel ağ gibi) vardır ve konum hakkında hızlı bir tahminde bulunabilir, oysa iPod daha fazla zaman alır ve bu da iPod'da bu hatanın ortaya çıkmasına neden olur.

Bu hata atıldığında locationManager: didFailWithError: delegate yöntemi çağrıldığından, bu yönteme iletilen hata nesnesindeki "[hata etki alanı]" ve "[hata kodu]" ile eşleştirilerek bu belirli durumu koşullu bir ifadede ele alınabilir.


3

Bulduğum şeyin tam nedeni, hem ios simülatörü "Hata ayıklama ayarları" hem de xcode ayarları "Düzenleri düzenle" konum simülasyonunda bir çakışma olması. Bunlardan herhangi birinde varsayılan kullanıcı konumunu ayarladığınızdan emin olun ve işaretleyin diğer Yok problemi kesin bu olabilir yardım umut çözdü. InXcode:görüntü açıklamasını buraya girin

İphone / ipad simülatöründe:görüntü açıklamasını buraya girin


3

Bunu Emulator'da aldıysanız, aşağıdakileri yapın

Debug > Location > ✓ Apple

emülatör talimatı


1

Uygulamalarınızı test etmek için Xcode'a kendi konum listenizi ekleyebilirsiniz.

Xcode içinden Hata Ayıkla / Konum Simülasyonu menüsünü seçin ve size şunlar sunulacak:

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

"GPX Dosyasını Projeye Ekle ..." öğesini seçin ve oluşturduğunuz GPX dosyasını seçin.


0

Xcode projesi> ürün> şema> şemayı düzenle> kontrol konumu simülasyonu> konumunuzu ayarlayın> seçeneğine gidin ve uygulamayı tekrar çalıştırın Umarım çalışacaktır!


0

Bu makale sayesinde ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ) Özel GPX dosyamdaki verilere bakmak için bir ipucu aldım ve orada sorunu buldum.

Farklı kaynaklardan alabileceğiniz bazı GPX dosyaları, belirtilen yoldaki farklı koordinatları gösteren aşağıdaki öğelere sahip olabilir. Bu, Xcode'un Konum Simülasyonu ile çalışmaz.

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

Yapmanız gereken, "trkpt" öğesinin tüm oluşumlarını bulmak ve en sevdiğiniz metin / xml düzenleyicide "wpt" ile değiştirmektir. Sonuç aşağıdaki gibi olmalıdır:

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

Bu yardımcı olur umarım! Bana kesinlikle yardımcı oldu.


0

Bu hata, programınızı çalıştırdığınızda ortaya çıkar, ancak programı çalıştırdıktan sonra konumu simüle edersiniz.

Bir yöntem buluyorum: simülatörünüzden çıkın ve yeniden başlatın, ardından programı çalıştırmadan önce simülatör konumunuzu ayarlayın ve benim için çalışıyor.

Bu yardımcı olur umarım! Bana kesinlikle yardımcı oldu. Teşekkürler...


0

bunların hepsi benim için işe yaramadı .. benim için işe yarayan şey şudur: - simülatörden konumu, uygulama çalışırken nonetekrar customkonuma değiştirecek şekilde ayarlayın .


0

Benim durumumda tüm öneriler yardımcı olmadı. Yardımcı olan şey, uygulamayı simülatör cihazından kaldırmak, yeniden yüklemek ve konuma erişmesine izin vermekti (ayarlar uygulamasında).


-1

Bunu cihaza alıyorsanız, muhtemelen istemediniz veya kullanıcı konumu toplama iznini reddetti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.