【问题标题】:location services prompt/authorization not activated in macos / swift位置服务提示/授权未在 macos / swift 中激活
【发布时间】:2019-02-17 03:56:12
【问题描述】:

无法在 swift 4 for macos 应用程序中获取当前位置的纬度和经度值,而是在控制台中收到错误消息

“与名为 com.apple.locationd.desktop.synchronous 的服务的连接已失效。” UserInfo={NSDebugDescription=与名为 com.apple.locationd.desktop.synchronous 的服务的连接已失效。}

注册计时器已过期,但客户端仍在注册!

class ViewController: NSViewController, CLLocationManagerDelegate 
{

let locationManager = CLLocationManager()
}


 override func viewDidLoad(){

       super.viewDidLoad()
      locationManager.delegate = self
       locationManager.desiredAccuracy = kCLLocationAccuracyBest
       locationManager.startUpdatingLocation()
        print (locationManager.location?.coordinate.latitude ?? 0);
        print (locationManager.location?.coordinate.longitude ?? 0);
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
         print (locationManager.location?.coordinate.latitude ?? 0);
         print (locationManager.location?.coordinate.longitude ?? 0);
     }

我还在 info.plist 中启用了隐私检查

我没有在控制台中获取坐标值,而是收到上述错误消息。在 mac 上启用了定位服务。代码有什么问题?

【问题讨论】:

  • 打开功能下的位置复选框按钮。

标签: swift swift4.2


【解决方案1】:

这个错误信息意味着应用程序没有被授予获取用户位置的权限。要解决此问题,您需要确保应用程序已正确“沙盒化”并且已启用该位置。您可以通过以下步骤在 Xcode 中执行此操作:

  1. 在项目导航器中,单击应用程序的目标。这应该会显示一个带有“常规”、“功能”、“资源标签”等选项卡的视图。
  2. 单击“功能”选项卡。这将为您提供“应用程序组”、“应用程序沙盒”等项目列表。每个项目都有一个“开/关”按钮。
  3. 打开“应用沙盒”项,然后按左侧的“>”按钮显示沙盒内容。
  4. 在“应用数据”部分,选择“位置”。

现在下次运行应用程序时,它会询问用户是否允许它使用当前位置。假设他们的回答是肯定的,您应该不会再看到错误,而是应该看到地图上突出显示的当前位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2016-06-14
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多