【问题标题】:com.automator.runner.xpc is not allowed assistive access - cannot click when running a quick actioncom.automator.runner.xpc 不允许辅助访问 - 运行快速操作时无法单击
【发布时间】:2019-08-04 20:01:47
【问题描述】:

我有一个运行需要单击按钮的 AppleScript 程序的快速操作。但是,当它到达点击阶段时,它会显示一条错误消息:

com.automator.runner.xpc 不允许辅助访问

我尝试在“系统偏好设置”>“安全性和隐私”>“全盘访问”下授予它权限,但它只允许我将应用程序添加到列表中,而这是一项快速操作(服务)。

tell application "System Events"
    tell process "NotificationCenter"
         click button "End" of window 1
   end tell
end tell

它应该只是单击了按钮,但返回了上面给出的错误消息。

关于为什么这不起作用的任何想法?有没有办法让我给 com.automator.runner.xpc 全盘访问权限?

【问题讨论】:

    标签: applescript


    【解决方案1】:

    这是其中包含 AppleScript 操作的自动化服务的一个已知问题。我想 Gatekeeper 不喜欢它们,因为它看起来像代码注入。

    解决方法(直到 Apple 采取措施解决问题)是在您的操作中使用 AppleScript 并将其转换为独立的 AppleScript 应用程序:将代码复制到脚本编辑器并保存文件,选择 Application 来自 文件格式 菜单。将此脚本应用程序添加到 Accessibility Security 窗格 - System Preferences->Security & Privacy->Privacy->Accessibility - 它应该通过 GateKeeper 的要求。然后您可以根据您的设置进行选择:

    1. 在 Automator 中创建一个调用应用程序的快速操作。

    像往常一样创建一个快速操作,并使用启动应用程序操作来运行脚本应用程序。这应该作为服务或在 Finder 预览窗格中作为快速操作使用

    1. 将脚本应用程序转变为独立的服务。

    在 Finder 中,找到脚本应用程序,然后从上下文菜单中选择“显示包内容”。深入到文件“info.plist”,在纯文本编辑器中打开它并在一个新的键值单元中进行编辑,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        [...]
        <key>NSServices</key>
        <array>
            <dict>
                <key>NSBackgroundColorName</key>
                <string>background</string>
                <key>NSMenuItem</key>
                <dict>
                    <key>default</key>
                    <string>Service Name</string>
                </dict>
                <key>NSMessage</key>
                <string>run</string>
            </dict>
        </array>
    </dict>
    </plist>
    

    ...确保不删除或损坏脚本编辑器为脚本应用程序生成的任何默认 xml。保存修改后的 info.plist 文件,将脚本应用程序放在 ~/Library/Services 中。这似乎只是作为一项服务工作(我无法让它们显示在扩展首选项窗格中)。

    【讨论】:

    • 这不是关守问题,而是沙盒问题。 (GK 防止未经批准启动新下载的可执行文件;沙盒调解可执行文件对外部资源的访问。)Apple 当前沙盒架构的一个限制是它仅适用于 GUI 应用程序级别;无法自定义沙盒化非 GUI 进程,例如运行特定用户脚本的脚本语言解释器。手指交叉的问题将在 Shortcuts 在 10.16 发布时得到解决;在那之前,正如您所说,解决方法是将脚本保存为具有自己唯一捆绑 ID 的 .app。
    • 非常感谢!我把它做成了一个应用程序,给了应用程序权限,并创建了一个调用它的快速操作,它运行良好。
    【解决方案2】:

    当我今天简单地断开外接显示器时,我注意到我使用的触发此警报的脚本开始工作。所以我相信它与此直接相关。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 2017-08-09
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2021-01-24
    相关资源
    最近更新 更多