簡體   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