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
и в значении напишите, почему вы спрашиваете место