![](/img/trans.png)
[英]swift ios9: Trying to start MapKit location updates without prompting for location authorization
[英]Xcode 8 iOS Simulator is not prompting for location services authorization in my Swift 3 project
我包括了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 。
我需要執行代碼之外的任何事情,以便重新創建授權應用程序的用戶體驗,然后將其縮放到實際位置?
模擬器處理位置與設備有所不同。 我建議將應用程序推到設備本身並從那里運行,以查看其如何請求許可並確保其位置正確。 這非常容易實現,對於使用訪問位置服務的應用進行測試非常有幫助。
本質上,插入手機,從要模擬的設備列表中選擇手機,按一下播放,並接受手機上的開發人員訪問權限,以從設備上運行應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.