wake-up-neo.com

Standortzugriff - Die App fragt nicht nach der Benutzerberechtigung für den Standort - iOS 11

Beschreibung

Die App fragt nicht nach der Benutzerberechtigung für den Zugriff auf den Standort und den Status "Nicht bestimmt"

Funktioniert einwandfrei bis iOS-10

var locationManager : CLLocationManager!

func getLocationDetails()
    {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestAlwaysAuthorization()
        locationManager.allowsBackgroundLocationUpdates = true
        locationManager.startUpdatingLocation()

    }

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
    {
        if status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse
        {
            locationManager.startUpdatingLocation()
        }
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
    {


    }

Plist-Screenshot  enter image description here

Hintergrundmodi

 enter image description here

6
Alok

Ich habe die Apple-Dokumentation durchgelesen und die Lösung für diese Frage gefunden.

Apple hat einige Richtlinien geändert, um den Standort des Benutzers zu ermitteln.

Hier ist der Videolink: Apple- Neuerungen bei Location Technologies

Vollständiger Code für den Standortzugriff in Swift und Objective-C

Lösung:

Jetzt müssen wir drei Authentifizierungsschlüssel in Plist hinzufügen:

  1. NSLocationAlwaysAndWhenInUseUsageDescription
  2. NSLocationWhenInUseUsageDescription
  3. NSLocationAlwaysUsageDescription

Plist sieht dann so aus:  enter image description here Der Bildschirm für die Authentifizierungsnachricht sieht folgendermaßen aus:

 enter image description here

Vollständiger Code für den Standortzugriff

11
Alok

Bitte fragen Sie nach der anderen Erlaubnis auch "Wann immer in Gebrauch Erlaubnis" und fügen Sie beide Erlaubnis auf der Plist hinzu.

1

Ich habe beide Keys in der info.plist-Datei hinzugefügt, um nach Berechtigungen zu fragen. Nachdem die App jedoch gelöscht und erneut geöffnet wurde, zeigte der Simulator die Warnung nicht an, damit der Benutzer eine Option auswählen konnte.

Ich könnte die Warnmeldung erneut anzeigen lassen, nachdem die App gelöscht wurde, dann settings application geöffnet wurde und die App schließlich erneut installiert wurde.

Hoffe, es könnte jemandem helfen.