приглашение / авторизация служб определения местоположения в macos / swift не активировано - PullRequest
0 голосов
/ 17 февраля 2019

невозможно получить значения широты и долготы текущего местоположения в swift 4 для приложения macos. Вместо этого я получаю сообщение об ошибке в консоли

"Соединение со службой с именем com.apple.locationd.desktop.synchronousбыл признан недействительным.UserInfo = {NSDebugDescription = Соединение со службой с именем com.apple.locationd.desktop.synchronous было недействительным.}

Таймер регистрации истек, но клиент все еще регистрируется!

class ViewController: NSViewController, CLLocationManagerDelegate 
{

let locationManager = CLLocationManager()
}


 override func viewDidLoad(){

       super.viewDidLoad()
      locationManager.delegate = self
       locationManager.desiredAccuracy = kCLLocationAccuracyBest
       locationManager.startUpdatingLocation()
        print (locationManager.location?.coordinate.latitude ?? 0);
        print (locationManager.location?.coordinate.longitude ?? 0);
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
         print (locationManager.location?.coordinate.latitude ?? 0);
         print (locationManager.location?.coordinate.longitude ?? 0);
     }

i такжевключена проверка конфиденциальности в info.plist

вместо получения значений координат в консоли. Я получаю сообщение об ошибке, как указано выше.службы определения местоположения включены на Mac.что не так в коде?

1 Ответ

0 голосов
/ 09 марта 2019

Это сообщение об ошибке означает, что приложению не было предоставлено разрешение на получение местоположения пользователя.Чтобы это исправить, вам нужно убедиться, что приложение правильно «помещено в« песочницу »и что местоположение включено.Вы можете сделать это в Xcode, выполнив следующие действия:

  1. В навигаторе проекта щелкните цель вашего приложения.Это должно вызвать представление с вкладками, такими как «Общие», «Возможности», «Теги ресурса» и т. Д.
  2. Нажмите на вкладку «Возможности».Это даст вам список элементов, таких как «Группы приложений», «Песочница приложения» и так далее.Каждый элемент будет иметь кнопку «Вкл. / Выкл.».
  3. Включите элемент «Песочница приложения» и нажмите кнопку «>» слева, чтобы отобразить содержимое песочницы.
  4. ВВ разделе «Данные приложения» выберите «Местоположение».

Теперь, когда вы в следующий раз запустите ваше приложение, он попросит пользователя разрешить ему использовать текущее местоположение.Предполагая, что они отвечают утвердительно, вы больше не должны видеть ошибку, а вместо этого должны видеть текущую позицию, выделенную на карте.

...