【问题标题】:Authorize UNIX command to control an application授权 UNIX 命令控制应用程序
【发布时间】:2019-09-01 09:05:18
【问题描述】:

我想设置一个运行 bbdiff 命令的 Automator 快速操作,并将 Finder 中的选定文件传递给它。

我创建了一个快速操作,并将其设置为在“Finder.app”中接收“文件或文件夹”。

然后我添加了“运行 Shell 脚本”动作,并将 shell 设置为“/bin/bash”,并将输入“作为参数”传递。脚本是:

/usr/local/bin/bbdiff "$1" "$2"

如果我从 Automator 或终端手动运行该脚本(用真实文件名替换参数),它会提示我授权主机程序控制 BBEdit,然后它就可以工作了。

但如果我从 Finder 运行它,我会收到以下错误:

“运行 Shell 脚本”操作遇到错误:“您必须允许 bbdiff 将事件发送到 BBEdit 应用程序。 使用tccutil reset AppleEvents重置系统权限,然后重试。 bbdiff:错误:-1743”

我尝试运行 tccutil reset AppleEvents 并再次运行该操作,但它显示相同的错误。

我还尝试将 bbdiff、/bin/bash 和 Finder 添加到系统偏好设置 > 隐私的可访问性和全盘访问选项卡中,但没有任何改变。看来您需要在“自动化”选项卡中添加一些内容,而这无法手动完成。

如何让它允许像 bbdiff 这样的 UNIX 命令来控制应用程序?

更新:

我设法通过使用“运行 AppleScript”操作而不是“运行 Shell 脚本”来解决这个问题:

on run {input, parameters}
    tell application "BBEdit" to compare (item 1 of input) against (item 2 of input)
    return input
end run

第一次运行时,提示允许Finder控制BBEdit,然后就成功了。

但这不适用于其他 shell 脚本,所以问题仍然悬而未决。

【问题讨论】:

  • 您应该能够将可执行文件(无论如何在 Mojave 中)添加到 System Preferences > Security & Privacy > Privacy > Accessibility 窗格。
  • @red_menace 我试过了,但没有运气。我认为需要将其添加到自动化窗格中,无法手动完成。

标签: automator finder appleevents


【解决方案1】:

在我的情况下,我可以通过关闭当前打开的 BBEdit 然后再次打开它来修复它。就我而言,我在错误出现之前进行了 BBEdit 更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2013-01-29
    • 2012-08-14
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多