swift macOS上的CoreLocation始终返回禁用的位置服务

xxe27gdn  于 11个月前  发布在  Swift
关注(0)|答案(2)|浏览(146)

我在macOS High Sierra上使用CoreLocation。
我需要得到当前用户的位置,但这段代码:

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是在示例创建时初始化的类属性。
即使尝试使用showUserLocation = true的MapView也不起作用。在我的Mac设置中,我启用了位置服务,但我的应用程序没有显示在列表中(可能是因为它从未请求用户位置访问)。
我已经在我的应用Info.plist文件中设置了“Privacy - Location When In Use Usage Description"有人知道如何正确询问用户位置吗?我目前直接从XCode运行我的应用。

oknrviil

oknrviil1#

HGJ
在您info.plist中添加此Privacy - Location When In Use Usage Description,键入String,并在Value Write中输入Why are you asking for location

2w2cym1i

2w2cym1i2#

检查你是否在功能中打开了AppSandbox。关闭它然后再试一次。这为我解决了这个问题。

相关问题