繁体   English   中英

Xcode 8 iOS Simulator不提示我的Swift 3项目中的位置服务授权

[英]Xcode 8 iOS Simulator is not prompting for location services authorization in my Swift 3 project

我遵循了有关位置服务的Apple开发人员指南

我包括了info.plist键值对:

密钥: Privacy - Location Always Usage Description

价值: The application myTestApp needs access to location services even in the background

我已经创建了CLLocationManager的实例作为视图控制器的类变量:

var locationManager = CLLocationManager()

我在视图控制器viewDidLoad()函数中有代码,用于分配委托并检查当前状态:

override func viewDidLoad() {
    super.viewDidLoad()

    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer
    let status = CLLocationManager.authorizationStatus()
    switch status {
    case .denied, .restricted, .notDetermined, .authorizedWhenInUse :
        print("The switch detected a state other than always")
        locationManager.requestAlwaysAuthorization()
    default:
        print("Services Authorized")
    }

但是,当我进行较小的更改后构建并运行该应用程序时,它并不会提示用户访问权限,更糟糕的是,当它有时能正常工作时,它会认为该用户位于大西洋中部的纬度:0.0和经度:0.0 。

我需要执行代码之外的任何事情,以便重新创建授权应用程序的用户体验,然后将其缩放到实际位置?

用户权限提示仅是一次。 一旦允许,设备将从该点自动获取用户位置。

尝试通过这两种方法在模拟器中设置自定义位置。

1.使用模拟器菜单操作

在此处输入图片说明

2.使用Xcode调试器选项

在此处输入图片说明

模拟器处理位置与设备有所不同。 我建议将应用程序推到设备本身并从那里运行,以查看其如何请求许可并确保其位置正确。 这非常容易实现,对于使用访问位置服务的应用进行测试非常有帮助。

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/LaunchingYourApponDevices/LaunchingYourApponDevices.html

本质上,插入手机,从要模拟的设备列表中选择手机,按一下播放,并接受手机上的开发人员访问权限,以从设备上运行应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM