macOS Mojave,Automator“未授权将 Apple 事件发送到系统事件。”
macOS Mojave, Automator “Not authorized to send Apple events to System Events.”
更新到 Mojave 后,我无法再使用以前一直使用的自动化服务,并出现以下警告。
- 在安全和隐私中,我已经检查了 AppleScript 编辑器。
您是否发现我的代码有任何问题,或者这是最新 macOS 的问题?
脚本
on run {input, parameters}
set pathList to {}
repeat with itemNum from 1 to count of input
tell application "System Events"
copy POSIX path of (container of (item itemNum of input)) to end of pathList
end tell
end repeat
return pathList
end run
更新:更新到最新的 Public Beta(截至 2018 年 8 月 4 日)为我解决了这个问题。在此之前,该问题确实存在于 Mojave 的所有 public 测试版中。
原回复:
只是想让你知道我和另一个朋友都遇到了这个完全相同的问题,使用 Applescript 的不同 Automator 工作流程(与你的不同)。手动激活(Finder --> 服务 --> 单击项目)和键盘快捷键激活都会出现问题。
更奇怪的是,在 Automator 内部进行测试时,工作流程的表现非常出色。
我已经通过反馈助手提交了错误报告,并建议其他看到此信息的人也这样做!吱吱作响的车轮和所有...
Automator - Permissions error. "The action “Run AppleScript” encountered an error: “Not authorized to send Apple events to System Events.”"
Automator workflow performing well inside Automator
这绝对是 Mojave 新安全框架的一部分。在 terminal
尝试
osascript -e 'tell application "Finder"' -e 'set _b to bounds of window of desktop' -e 'end tell'
你可能收到:
36:42: execution error: Not authorized to send Apple events to Finder. (-1743)
第一次执行时应该发生的是 Finder 打开一个对话框,通知您 terminal
正在请求向 Finder 发送事件的权限。如果您允许,那么 terminal
将被添加到 System Preferences > Security & Privacy > Automation
:
中的自动化页面
我目前看到两个问题:
- 为脚本操作请求权限的实现似乎有问题;我有 运行 其他脚本请求向 Safari 发送事件的权限,而 Finder 不提示权限,它只是 returns 一个错误。
- 流线型自动化需要某种类型的机制来授予权限先验;一个例子是将 AppleScript 与 Ansible 一起使用并且无法预加载授权
其他人已经写了关于此的更广泛的信息:
- https://www.felix-schwarz.org/blog/2018/06/apple-event-sandboxing-in-macos-mojave
- https://forums.developer.apple.com/thread/106949
希望在 Mojave 发布之前解决这个问题,因为它会严重影响 macOS 上的自动化功能。
我有一个类似的错误 运行 AppleScript .app
应用程序。我收到以下错误:
Not authorized to send Apple events to Finder. (-1743)
解决方法是从 .scpt 或 .苹果脚本源代码。这会生成一个新的 .app 应用程序,在我的例子中 运行 成功。初始启动需要批准(以及一些后续启动),并且该应用程序被添加为 Settings -> Security & Privacy -> Privacy -> Automation
.
下的条目
这是我为我解决问题的方法。我转到“系统偏好设置”>“安全和隐私”>“辅助功能”(左侧的选项)>(输入系统密码)> 单击“Automator”(或您要启用的应用程序),然后 TADA 就可以了。
我在打开 gitk
时遇到同样的错误。
Error in startup script: execution error: Not authorised to
send Apple events to System Events. (-1743)
解决方案
转到 Settings -> Security & Privacy -> Privacy -> Automation -> Privacy tab
并选中 System Events
复选框。
我试图通过按键将当前日期插入“提醒事项”应用程序。我没有使用推荐的 "Settings -> Security & Privacy -> Privacy -> Accessibility -> Automator",而是不得不添加 Reminders 而不是 Automator,这样它就可以允许击键命令。令人恼火的是它只允许在特定应用程序上执行操作,但似乎是这样。
在 Mojave 发布几个月后,我仍然无法发送击键。对我来说,奇怪的是,解决方法是 系统偏好设置 -> 安全和隐私 -> 隐私选项卡 -> 使用您的密码解锁锁 -> 从应用程序列表中删除(使用减号按钮)Automator辅助功能行。在我的脚本可以再次发送击键之前,可能需要删除 运行 测试版中的某些内容。
编辑:退出系统偏好设置后,我再次收到警报错误。将 Automator.app 重新添加到 Accessibility 行似乎暂时解决了这个问题。
我已经使用以下步骤解决了同样的问题。
打开 Plist 并在其中添加以下键
<key>NSAppleEventsUsageDescription</key>
<string>Please give access to Export details to Outlook</string>
当您的应用程序启动时第一次执行脚本时,您将收到一个确认弹出窗口以允许或禁止。如果单击允许,它将执行脚本。
就我而言,我必须去:
设置和隐私 > 隐私 > 全磁盘访问(在左侧面板中) 和 添加 Automator
我也曾尝试将 Automator 添加到辅助功能中,正如其他答案所建议的那样(最初对我不起作用)所以也许我们需要在这两个地方添加 Automator。
像这样从终端重置为我修复了它:
tccutil reset AppleEvents; tccutil reset SystemPolicyAllFiles
如果你在尝试 运行 你的苹果脚本时没有得到类似的东西,而且你在隐私设置的自动化部分没有看到 iTerm,那么最简单的方法可能会有所帮助:重新启动您的 Mac ;) 免责声明:我这边出现这种情况的另一个原因可能是用户切换。
我在 Catalina 的 Terminal.app 中使用 osascript -e 'tell application "Finder" to display notification "some stuff"
的简单测试脚本遇到了这个错误。
我没有看到弹出窗口,也没有在 Settings -> Security & Privacy -> Privacy -> Automation -> Privacy
(Automation
和 Full Disk Access
中找到任何有用的选项。 tccutil reset AppleEvents; tccutil reset SystemPolicyAllFiles
我也没有任何运气(不幸的是失去了我所有的相关偏好)。
对我来说,问题是我 运行在 tmux 中执行命令。一旦我与 tmux 分离,运行在终端中使用相同的命令提示我进入相关权限对话框。一旦允许并重新连接到我的 tmux 会话,我仍然无法 运行 tmux 中的命令(但 运行 在 tmux 之外的终端中)。在这一点上,我终止了我的 tmux 会话,启动了一个新会话,然后能够 运行 在终端的 tmux 中执行此命令。
我 运行 今天使用一个脚本来解决这个问题,这个脚本我已经使用了十年,它在 Photoshop 中自动栅格化 Illustrator 文件,只是被告知它没有权限而没有理由。上面的解决方案不起作用,因为在我的情况下它与系统事件无关。然后我进行了测试,发现如果使用 osascript,我计算机上的每个应用程序都存在同样的问题。如果我在脚本中告诉它打开一个文件,我会得到一个权限错误,但是出于一些荒谬的原因,如果我在脚本中告诉它关闭一个已经打开的文件,我突然会得到一个权限对话框:
osascript -e "tell application \"Adobe Photoshop 2021\" to close current document saving no"
我想我会 post 在这里帮助处于这种令人恼火的困境中的其他人。
更新到 Mojave 后,我无法再使用以前一直使用的自动化服务,并出现以下警告。
- 在安全和隐私中,我已经检查了 AppleScript 编辑器。
您是否发现我的代码有任何问题,或者这是最新 macOS 的问题?
脚本
on run {input, parameters}
set pathList to {}
repeat with itemNum from 1 to count of input
tell application "System Events"
copy POSIX path of (container of (item itemNum of input)) to end of pathList
end tell
end repeat
return pathList
end run
更新:更新到最新的 Public Beta(截至 2018 年 8 月 4 日)为我解决了这个问题。在此之前,该问题确实存在于 Mojave 的所有 public 测试版中。
原回复:
只是想让你知道我和另一个朋友都遇到了这个完全相同的问题,使用 Applescript 的不同 Automator 工作流程(与你的不同)。手动激活(Finder --> 服务 --> 单击项目)和键盘快捷键激活都会出现问题。
更奇怪的是,在 Automator 内部进行测试时,工作流程的表现非常出色。
我已经通过反馈助手提交了错误报告,并建议其他看到此信息的人也这样做!吱吱作响的车轮和所有...
Automator - Permissions error. "The action “Run AppleScript” encountered an error: “Not authorized to send Apple events to System Events.”"
Automator workflow performing well inside Automator
这绝对是 Mojave 新安全框架的一部分。在 terminal
尝试
osascript -e 'tell application "Finder"' -e 'set _b to bounds of window of desktop' -e 'end tell'
你可能收到:
36:42: execution error: Not authorized to send Apple events to Finder. (-1743)
第一次执行时应该发生的是 Finder 打开一个对话框,通知您 terminal
正在请求向 Finder 发送事件的权限。如果您允许,那么 terminal
将被添加到 System Preferences > Security & Privacy > Automation
:
我目前看到两个问题:
- 为脚本操作请求权限的实现似乎有问题;我有 运行 其他脚本请求向 Safari 发送事件的权限,而 Finder 不提示权限,它只是 returns 一个错误。
- 流线型自动化需要某种类型的机制来授予权限先验;一个例子是将 AppleScript 与 Ansible 一起使用并且无法预加载授权
其他人已经写了关于此的更广泛的信息:
- https://www.felix-schwarz.org/blog/2018/06/apple-event-sandboxing-in-macos-mojave
- https://forums.developer.apple.com/thread/106949
希望在 Mojave 发布之前解决这个问题,因为它会严重影响 macOS 上的自动化功能。
我有一个类似的错误 运行 AppleScript .app
应用程序。我收到以下错误:
Not authorized to send Apple events to Finder. (-1743)
解决方法是从 .scpt 或 .苹果脚本源代码。这会生成一个新的 .app 应用程序,在我的例子中 运行 成功。初始启动需要批准(以及一些后续启动),并且该应用程序被添加为 Settings -> Security & Privacy -> Privacy -> Automation
.
这是我为我解决问题的方法。我转到“系统偏好设置”>“安全和隐私”>“辅助功能”(左侧的选项)>(输入系统密码)> 单击“Automator”(或您要启用的应用程序),然后 TADA 就可以了。
我在打开 gitk
时遇到同样的错误。
Error in startup script: execution error: Not authorised to send Apple events to System Events. (-1743)
解决方案
转到 Settings -> Security & Privacy -> Privacy -> Automation -> Privacy tab
并选中 System Events
复选框。
我试图通过按键将当前日期插入“提醒事项”应用程序。我没有使用推荐的 "Settings -> Security & Privacy -> Privacy -> Accessibility -> Automator",而是不得不添加 Reminders 而不是 Automator,这样它就可以允许击键命令。令人恼火的是它只允许在特定应用程序上执行操作,但似乎是这样。
在 Mojave 发布几个月后,我仍然无法发送击键。对我来说,奇怪的是,解决方法是 系统偏好设置 -> 安全和隐私 -> 隐私选项卡 -> 使用您的密码解锁锁 -> 从应用程序列表中删除(使用减号按钮)Automator辅助功能行。在我的脚本可以再次发送击键之前,可能需要删除 运行 测试版中的某些内容。
编辑:退出系统偏好设置后,我再次收到警报错误。将 Automator.app 重新添加到 Accessibility 行似乎暂时解决了这个问题。
我已经使用以下步骤解决了同样的问题。 打开 Plist 并在其中添加以下键
<key>NSAppleEventsUsageDescription</key>
<string>Please give access to Export details to Outlook</string>
当您的应用程序启动时第一次执行脚本时,您将收到一个确认弹出窗口以允许或禁止。如果单击允许,它将执行脚本。
就我而言,我必须去:
设置和隐私 > 隐私 > 全磁盘访问(在左侧面板中) 和 添加 Automator
我也曾尝试将 Automator 添加到辅助功能中,正如其他答案所建议的那样(最初对我不起作用)所以也许我们需要在这两个地方添加 Automator。
像这样从终端重置为我修复了它:
tccutil reset AppleEvents; tccutil reset SystemPolicyAllFiles
如果你在尝试 运行 你的苹果脚本时没有得到类似的东西,而且你在隐私设置的自动化部分没有看到 iTerm,那么最简单的方法可能会有所帮助:重新启动您的 Mac ;) 免责声明:我这边出现这种情况的另一个原因可能是用户切换。
我在 Catalina 的 Terminal.app 中使用 osascript -e 'tell application "Finder" to display notification "some stuff"
的简单测试脚本遇到了这个错误。
我没有看到弹出窗口,也没有在 Settings -> Security & Privacy -> Privacy -> Automation -> Privacy
(Automation
和 Full Disk Access
中找到任何有用的选项。 tccutil reset AppleEvents; tccutil reset SystemPolicyAllFiles
我也没有任何运气(不幸的是失去了我所有的相关偏好)。
对我来说,问题是我 运行在 tmux 中执行命令。一旦我与 tmux 分离,运行在终端中使用相同的命令提示我进入相关权限对话框。一旦允许并重新连接到我的 tmux 会话,我仍然无法 运行 tmux 中的命令(但 运行 在 tmux 之外的终端中)。在这一点上,我终止了我的 tmux 会话,启动了一个新会话,然后能够 运行 在终端的 tmux 中执行此命令。
我 运行 今天使用一个脚本来解决这个问题,这个脚本我已经使用了十年,它在 Photoshop 中自动栅格化 Illustrator 文件,只是被告知它没有权限而没有理由。上面的解决方案不起作用,因为在我的情况下它与系统事件无关。然后我进行了测试,发现如果使用 osascript,我计算机上的每个应用程序都存在同样的问题。如果我在脚本中告诉它打开一个文件,我会得到一个权限错误,但是出于一些荒谬的原因,如果我在脚本中告诉它关闭一个已经打开的文件,我突然会得到一个权限对话框:
osascript -e "tell application \"Adobe Photoshop 2021\" to close current document saving no"
我想我会 post 在这里帮助处于这种令人恼火的困境中的其他人。