我有一个用C ++编写的Xcode“命令行工具”项目。我最近添加了CoreLocation框架和相关代码来查找用户位置。

通常,当我实现CoreLocation框架时,OS X会要求我授予该应用程序的许可。使用我的命令行工具不会发生这种情况。是否因为没有相关的窗口/菜单?

另外,如果我尝试在“安全性”>“隐私”下的“系统偏好设置”窗格中手动启用权限,则即使我已明确允许访问,它也会在每次运行该应用程序时自动被禁用。

任何信息将不胜感激。

最佳答案

Mac OS下的某些功能需要连接到窗口服务器。 NSImage是一个示例,位置服务也可能需要这种连接。

但是,我不知道如何在不调用NSApplicationMain的情况下进行这种连接。

您可以做的是编写一个不会出现在扩展坞中的辅助应用程序(如状态栏应用程序),而是调用NSApplicationMain。然后,此应用将执行所有位置服务,并通过stdout或套接字或类似方法与调用进程(您的CLI)进行通信。

08-17 05:27