CoreLocation в macOS всегда возвращает отключенные службы определения местоположения

Я застрял на использовании CoreLocation на MacOS High Sierra.

Мне нужно получить текущее местоположение пользователя, но этот код:

if (CLLocationManager.locationServicesEnabled()) {
        switch CLLocationManager.authorizationStatus() {
        case .restricted:
            print("You don't have permission to use Location Services.")
        case .denied:
            print("You denied permission to use Location Services, please enable it in Preferences.")
        case .notDetermined:
            print("Non determinati")
            self.locationManager.startUpdatingLocation()
        default: ()
        }
    }
    else {
        print("Location services disabled")
    }

всегда печатать "Услуги определения местоположения отключены".

locationManager - это свойство класса, инициализируемое при создании экземпляра.

Даже пытаясь использовать MapView с showUserLocation = true не работает В моих настройках Mac у меня включены службы определения местоположения, но мое приложение не отображается в списке (возможно, потому, что оно никогда не запрашивало доступ к местоположению пользователя).

Я уже установил "Конфиденциальность - Местоположение, когда используется описание использования" в моем файле Info.plist приложения. Кто-нибудь знает, как правильно запрашивать местоположение пользователя? В настоящее время я запускаю свое приложение прямо из XCode.

1 ответ

Проверьте , включен ли у вас AppSandbox в возможностях. Выключите и попробуйте снова. Это решило проблему для меня.

HGJ

в вашем info.plist добавить это Privacy - Location When In Use Usage Description, тип String и в значении напишите, почему вы спрашиваете место

Другие вопросы по тегам