Soru Konum Hizmetleri iOS 11'de çalışmıyor


Uygulamayı kaldırmaya yönelik bir girişimde iOS 11 SDK ile yeniden oluşturdum. blue banner Bu şimdi her zaman görünür. Düşündüm ki - "Brilliant, bu işe yaradı", sadece konum hizmetlerinin artık hiç çalışmıyor olduğunu keşfetmek için.

İOS 10 ile çalışmak için kullanılan uygulama - Herkes bir şey duydu mu?


68
2018-06-07 23:01


Menşei


Info.plist'de NSLocationAlwaysAndWhenInUseUsageDescription'ı ekleyin - Jayprakash Dubey


Cevaplar:


Apple'ın bir başka gizlilik özelliği daha eklediğini görüyoruz. Kullanıcı artık bizim için geçersiz requestAlwaysAuthorization ve düşürmek requestWhenInUseAuthorization - Bir geliştirici olarak şu anda hem açıklamaları hem de Info.plist

Yeni bir anahtar eklediklerini buldum NSLocationAlwaysAndWhenInUseUsageDescription 

/*
*      Either the NSLocationAlwaysAndWhenInUseUsageDescription key or both the
*      NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription
*      keys must be specified in your Info.plist; otherwise, this method will do
*      nothing, as your app will be assumed not to support Always authorization.
*/

Ancak, bu yeni anahtarı kullanarak - konum hizmeti hala işe yaramadı, daha fazla arama yaparken bu mücevher tüm ekstra hata ayıklama bilgileri ile karışık buldum:

Bu uygulama, bir kullanım açıklaması olmadan gizlilik duyarlı verilere erişmeyi denedi. Uygulamanın Info.plist'i, uygulamanın bu verileri nasıl kullandığını kullanıcıya açıklayan dize değerleri olan hem NSLocationAlwaysAndWhenInUseUsageDescription ve NSLocationWhenInUseUsageDescription anahtarlarını içermelidir.

Hangi güncellemede bulduğum yorumuyla doğrudan çelişiyor CLLocationManager.h dosya. Ben de bir radar oluşturdum.

İyi haber, hata ayıklama konsolu önerisini izlerseniz, IE. yeni anahtarı da ekleyin NSLocationAlwaysAndWhenInUseUsageDescription ve eski anahtarlardan biri NSLocationWhenInUseUsageDescription, lokasyon hizmetleri tekrar çalışmaya başlayacak.


143
2018-06-07 23:39



Ben çok benzer bir durumla karşı karşıyayım. Sadece iOS 10.2'de test ediyorum ve NSLocationAlwaysUsageDescription benim ihtiyacım olan Info.plist'e eklendi. Ancak yukarıdaki mesajı ekleyeceğimi söyleyen konsolda alıyorum NSLocationWhenInUseUsageDescription de. - Isuru
Maalesef, kullanıcı artık üç cevabı olan bir diyaloğa kavuşuyor, burada kullanıcı sabırsızlığından dolayı en çok vurulma olasılığı en üstteki seçenek: "Sadece Uygulamayı Kullanırken". Kullanıcı, her zaman kullanımda olması gereken uygulamaları, daha sonra ayarı tekrar değiştirmenin zorluğunu aşmadığı sürece, işe yaramaz hale getirir. En azından "Her Zaman İzin Ver" seçeneği, uygulamanın istediği şey olduğunda en iyi seçim olmalıydı! - Hans Terje Bakke
Üç açıklama anahtarını ekledim ve hala konum güncellemeleri almıyorum. ViewwillAppear'da locationmanagerdelgate öğesini ekliyorum ve viewwilldisapper uygulamasında delegeyi kaldıracağım. Ayarlamaya gidip zaten seçili olan Her Zaman İzin Ver seçeneğini seçersem. Güncellemeyi yalnızca bir kez alıyorum ve sonra artık yok. Bunu nasıl düzelteceğine dair bir fikir. Şimdiden teşekkürler!! - Uma
@Uma - çağırıyor musun startUpdatingLocation veya requestLocation? - William George
@WilliamGeorge Kullanıyorum startUpdatingLocation - Uma


Sadece bunu düzeltmek için adımlar eklemek için:

Bunu yapmanın 2 yolu:

A) kolay yolu:  Info.plist dosyanızı seçin, özellikleri ekleyin, LOCATION yerine PRIVCY ile başladığına dikkat edin ... bu nedenle, bu değişkenlerin tam adları "Gizlilik - Konum ..." vb. İle başlar, her birini buraya ekleyin ve nasıl olduğunu açıklayın. Kullanıcı bu uyarıyı görüyordu.

B) Sert / ilginç / programlı bir şekilde (bundan daha çok hoşlanıyorum):

Uygulamanız için Info.plist'i sağ tıklayın ve ardından "Kaynak kodunu görüntüle" yi seçin, hepsini XML'de görmelisiniz,

Diğer ...... formatını takip edin ve aşağıdaki özellikleri ekleyin:

<key>NSLocationAlwaysUsageDescription</key>
<string>Program requires GPS to track cars and job orders</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Program requires GPS to track cars and job orders</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Program requires GPS to track cars and job orders</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app uses your Microphone to allow Voice over IP communication with the Program Admin system</string>

Kaydet ve sonra info.plist dosyasını sağ tıklatın ve sonra da Özellik listesi'ni seçin, bu dosyayı varsayılan görünüme geri dönmelidir.

DÜZENLE:

Başka bir üye kod istedi, işte burada:

1) .H dosyanıza şunu ekleyin:

@property (strong, nonatomic) CLLocationManager *LocationManager;

2) .M dosyanızda ViewDidAppear () fonksiyonunun altına ekleyin:

_LocationManager = [[CLLocationManager alloc] init];
[_LocationManager setDelegate:self];
_LocationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
_LocationManager.pausesLocationUpdatesAutomatically = NO;
[_LocationManager requestAlwaysAuthorization];

_LocationManager.headingFilter = 5;
_LocationManager.distanceFilter = 0;

[_LocationManager startUpdatingLocation];
[_LocationManager startUpdatingHeading];

Bu benim için iyi olanı, umarım bu kod sizin için de çalışır.

Saygılarımızla

Heider


28
2017-09-22 22:43



Üç açıklama anahtarını ekledim ve hala konum güncellemeleri almıyorum. Locationmanagerdelgate ekliyorum viewwillAppear  ve delegenin kaldırılması viewwilldisapper. Ayarlamaya gidip zaten seçilmiş olanı seçersem Allow Always. Güncellemeyi yalnızca bir kez alıyorum ve sonra artık yok. Bunu nasıl düzelteceğine dair bir fikir. Şimdiden teşekkürler!! - Uma
Şimdi benim için neyin çalıştığını göstermek için kodumu ekleyeceğim: - Heider Sati
Seninkiyle aynı koda sahibim. Ama yine de, eve gidip uygulamaya geri dönmezsem yer güncellemelerini alamıyorum. Bu yalnızca iOS 11'de gerçekleşir. Hala nedenini anlayamadım. - Uma
Bu konuya bir göz atabilir misin? stackoverflow.com/questions/46616496/.... Teşekkür ederim! - Uma
Merhaba Uma, Kullanıcılarımızdan biri aynı sorunu cihazlardan birinde bildiriyor, bunu araştırıyorum ve size geri döneceğim, sanırım IOS11 şu anda hepimizi çok meşgul ediyor ... Bunu öğrenmek zorundayım ve Bu en kısa zamanda çöz, lütfen benimle ol ... teşekkürler - Heider Sati


iOS11 altında çalışarak, Info.plist'in Info.plist uygulamasında en az NSLocationAlwaysAndWhenInUseUsageDescription dosyasına ihtiyaç duyduğunu keşfettim:

enter image description here

Uygulamanız yeterli olduğunda garip çok dilli dizelerinizin yerelleştirilmiş sürümleri her üç tuş bu post başka sözü requestAlwaysAuthorization() ve locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) sessizce başarısız olur.

Örnek olarak almanca çevirisini gösteren atış:

enter image description here

Umarım bu sana zaman ayırdığında zaman kazandırır.


18
2017-10-19 05:54



Teşekkürler @iDoc! Bu bana çok zaman kazandırdı. - Reinhard Männer
Bu doğru cevap, iOS 11'de konum gizlilik anahtarlarının yerelleştirilmesi mandatry. - jberlana
Harika! çok teşekkürler - Ugo Chirico
10 saat sonra bu yazıya geçiyorum ... tnx - 1110


Swift 4.0.3'te Çalışmak 

   <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
   <string>Description</string>

   <key>NSLocationAlwaysUsageDescription</key>
   <string>Will you allow this app to always know your location?</string>

   <key>NSLocationWhenInUseUsageDescription</key>
   <string>Do you allow this app to know your current location?</string>  

8
2018-01-29 09:20



4. hızlı çalışıyor. Teşekkür ederim. - R. Mohan
Teşekkürler R. Mohan - Keshav Gera
bu benim için hızlı 4.1 ile çalışır - roberto tomás


Bu adımları takip et:

"Her Zaman Yetkilendirme" gerektiren bir uygulamada aynı sorunu yaşadım ve şu adımları izleyerek çözdüm:

1.  Eklemek  NSLocationWhenInUseUsageDescription anahtarı Info.plist

2.  Eklemek  NSLocationAlwaysAndWhenInUseUsageDescription için Info.plist

3.  Eklemek  NSLocationAlwaysUsageDescription için Info.plist (<iOS 11’i desteklemek için)

4.  Aramak  requestWhenInUseAuthorization()  ÖNCE  requestAlwaysAuthorization()

RequestWhenInUseAuthorization () tarihinden önce requestAlwaysAuthorization () yöntemini çalıştıramazsınız. Bu izin düzeyine yükseltmelisiniz. Bu değişiklikleri yaptıktan sonra, konum güncellemeleri tekrar düzgün çalışmaya başladı.

Daha fazla detay burada bulunabilir:

https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services/requesting_always_authorization


7
2017-12-01 05:42



Bununla hiçbir şey değişmedi :( - Cemal BAYRI


Eşeği sağlam kazığa bağlamak .. İOS 11'de: Aşağıdakileri ekleyin ve iyisiniz.

<key>NSLocationWhenInUseUsageDescription</key>
<string>Description</string>

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Description</string>

<key>NSLocationAlwaysUsageDescription</key>
<string>Description</string>

4
2017-12-06 06:25





Hızlı: 3 Ben aynı sorunu yaşadım. Çözümü bulmaktan bıkmıştım. İşte ben sorunu çözdüm.

Aşama 1 : Proje dosyası> Yetenekler> arka plan modları> seçin Yer Güncelleme

Adım 2 :   NSLocationWhenInUseUsageDescription, NSLocationAlwaysAndWhenInUseUsageDescription anahtarlarını ekle Info.plist 

Aşama 3 :

manager.pausesLocationUpdatesAutomatically = false
manager.allowsBackgroundLocationUpdates = true

-1
2018-06-07 05:56