[英]macOS - I denied location services when prompted, and now the pop up won't show again
我正在使用Swift 3在XCode上開發一個macOS應用程序,我正在獲取用戶的位置。 當應用程序第一次加載時,它會顯示一個提示,要求用戶訪問其位置。 它自從我制作應用程序以來一直在工作,但我隨后更改了項目的名稱,當我重新運行應用程序時再次顯示彈出窗口時,我點擊“取消”進行測試,現在當我嘗試獲取用戶的位置再次,彈出窗口不顯示要求許可。
我檢查了系統偏好設置 - >安全和隱私 - >隱私,我的應用程序不在那里重新啟用位置服務。
有任何想法嗎?
下面的代碼是我如何獲取用戶的位置,我在viewDidLoad()中調用它:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
如果應用程序無法找到您的位置,則表示您未授予應用程序使用您的位置的權限(顯然)。 按照以下說明重置它以再次請求您的許可。
打開終端並sudo到root shell
$ sudo -s
轉到locationd /
$ cd /var/db/locationd
備份clients.plist以防萬一
$ cp -p clients.plist clients.plist.save
將clients.plist轉換為XML
$ plutil -convert xml1 clients.plist
打開clients.plist並刪除包含Map My Route應用程序的整個,然后保存它。
將clients.plist轉換回二進制
$ plutil -convert binary1 clients.plist
重新啟動locationd
$ killall locationd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.