【问题标题】:MacOs. How can I ask access for System Events on every app?苹果系统。如何在每个应用程序上请求访问系统事件?
【发布时间】:2019-10-01 23:52:38
【问题描述】:

我需要我的 Mac Swift 应用程序使用系统事件(通过 Applescript)来关闭用户添加到列表中的任何应用程序。 我在我的系统偏好设置中看到很多应用程序在自动化面板中具有系统事件访问权限(例如“Google 的备份和同步”或“Divvy”)。我该如何请求权限?

【问题讨论】:

  • 您不能以编程方式将项目添加到安全首选项中,需要用户参与。除了普通的沙盒权利外,您的应用还需要在其 Info.plist 中有一个NSAppleEventsUsageDescription 键,这是系统在应用首次运行时用来提示用户的键。跨度>
  • 是的,我知道是必须同意的用户。我只是想知道如何触发该请求。我会试试这个。谢谢!

标签: swift cocoa applescript entitlements


【解决方案1】:

在 Info.plist 中,在 Source Code 视图中添加键 NSAppleEventsUsageDescription

<key>NSAppleEventsUsageDescription</key>
<string>$(PRODUCT_NAME) needs to control System Events</string>

Privacy - AppleEvents Sending Usage Description 在属性列表视图的弹出菜单中。

&lt;string&gt; 值是任意描述。

此外,在启用强化运行时的 Xcode 11 中,您必须选中 Apple Events 复选框

【讨论】:

  • 我们如何检查用户是否拒绝或接受了权限。比如,我们是否可以检查用户是否拒绝了该权限,并且我们可以再次手动显示弹出窗口以让用户知道此权限是强制性的?
  • AFAIK 你不能。用户收到无法发送 Apple 事件的警报。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多