OSX 10.14 Swift 5 - CoreLocation / Zugriff verweigert

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • OSX 10.14 Swift 5 - CoreLocation / Zugriff verweigert

    Hallo,

    der locationManager(_:didChangeAuthorization:) verweigert mir den Zugriff, obwohl in der Info.plist folgende Schlüssel eingetragen sind:
    - Privacy - Location When In Use Usage Description
    - Privacy - Location Usage Description
    bzw.
    - Privacy - Location Always and When In Use Usage Description

    Außerdem wurde im TARGETS in der App Sandbox innerhalb von App Data: Location bestätigt.

    Kann mir jemand mitteilen, was ich hier übersehe? ?(

    Danke mal vorab.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Korrektur: URL

  • Welche Methode verwendest Du zur Anforderung der Location Services, requestWhenInUseAuthorization() oder requestAlwaysAuthorization()?

    Wann rufst Du die requestXXX Methoden auf?

    Zumindest unter iOS gibt es eine Meldung in der Console, wenn z.B. die Keys in der Info.plist oder sonst etwas fehlt, um die Location Services zu verwenden. Gibt es bei Dir evtl. irgendwelche Ausgaben in der Console?
  • MCDan schrieb:

    Welche Methode verwendest Du zur Anforderung der Location Services, requestWhenInUseAuthorization() oder requestAlwaysAuthorization()?

    Wann rufst Du die requestXXX Methoden auf?

    Zumindest unter iOS gibt es eine Meldung in der Console, wenn z.B. die Keys in der Info.plist oder sonst etwas fehlt, um die Location Services zu verwenden. Gibt es bei Dir evtl. irgendwelche Ausgaben in der Console?
    Hmmm, die von Dir genannten Methoden werden von OSX 10.14 nicht unterstützt. Oder irre ich mich hier völlig?

    requestAlwaysAuthorization() benötigt 10.15+ zumindest lt. Beschreibung von Apple
    requestWhenInUseAuthorization() hierfür wird eine Unterstützung für OSX gar nicht erst aufgeführt

    Wird der request nicht mittels CLLocationManagerDelegate verfügt? Habe mit CoreLocation in Verbindung mit OSX10.14 noch nicht gearbeitet, insofern ist dies nur eine Vermutung. Funktionierende Beispiele habe ich für OSX 10.14 nicht parat.

    Anbei mal die Methoden, welche zum Einsatz kommen:
    - func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
    - func locationManager(_ manager: CLLocationManager, didFailWithError error: Error)
    - func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)

    Die letze Funktion übermittelt mir, dass der Zugriff (Status: .denied) verweigert wird. Weitere Fehlermeldungen erhalte ich nicht.

    Aufgerufen wird das Ganze via locationManager.startUpdatingLocation().

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von OSXDev ()

  • Ups, sorry. Die Anforderung der Location Services scheint es nur unter iOS bzw. erst ab macOS 10.15 zu geben.

    Ich habe Location Services unter macOS noch nicht verwendet und bin daher von einer identischen Verwendung ausgegangen.

    Unter macOS soll der Authorisation Prompt automatisch erscheinen, sobald die App das erste mal den Location Service verwendet.

    Anstelle von startUpdatingLocation() könntest Du mal requestLocation() versuchen. Dies wird zumindest in Core Location Best Practices (ca. 30:55 - 31:30) empfohlen.

    Ich würde jetzt mal tippen, dass es startUpdatingLocation() unter macOS zwar gibt, Apple jedoch den Authorisation Prompt vergessen hat. :D
  • MCDan schrieb:

    ...

    Anstelle von startUpdatingLocation() könntest Du mal requestLocation() versuchen. Dies wird zumindest in Core Location Best Practices (ca. 30:55 - 31:30) empfohlen.

    Ich würde jetzt mal tippen, dass es startUpdatingLocation() unter macOS zwar gibt, Apple jedoch den Authorisation Prompt vergessen hat. :D
    Es funktionieren beide Methoden. :thumbup:

    :rolleyes: Sorry, ich habe hier nicht daran gedacht in der Rubrik Datenschutz/Ortungsdienste mal nachzusehen ob diese überhaupt aktiviert sind. ;( Hinzu kommt, dass WLAN aktiviert werden muss. Hierauf wird aber hingewiesen.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von OSXDev ()