我正在使用Swift 3在XCode上开发一个macOS应用程序,我正在获取用户的位置。当应用程序第一次加载时,它会显示一个提示,要求用户访问其位置。它自从我制作应用程序以来一直在工作,但我随后更改了项目的名称,当我重新运行应用程序时再次显示弹出窗口时,我点击“取消”进行测试,现在当我尝试获取用户的位置再次,弹出窗口不显示要求许可。
我检查了系统偏好设置 - >安全与安全隐私 - >隐私,我的应用程序不在那里重新启用位置服务。
有什么想法吗?
以下代码是我获取用户位置的方式,我在viewDidLoad()中调用它:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
答案 0 :(得分:0)
如果应用程序无法找到您的位置,则表示您未授予应用程序使用您所在位置的权限(显然)。按照以下说明重置它以再次请求您的许可。
打开终端并sudo到root shell
$ sudo -s
转到位置/
$ 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
- 醇>
重新启动定位
$ killall locationd