更新到Mojave之后,我将无法再使用以前在以下警报中使用的自动化服务。
automator - macOS Mojave,Automator  “Not authorized to send Apple events to System Events.”-LMLPHP

  • 在“安全性和隐私”中,我已经检查了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
    

    automator - macOS Mojave,Automator  “Not authorized to send Apple events to System Events.”-LMLPHP

    automator - macOS Mojave,Automator  “Not authorized to send Apple events to System Events.”-LMLPHP

    最佳答案

    这绝对是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的“自动化”页面中:

    automator - macOS Mojave,Automator  “Not authorized to send Apple events to System Events.”-LMLPHP

    我目前看到两个问题:
  • 为脚本操作请求许可的实现似乎是错误的;我已经运行了其他脚本,这些脚本请求将事件发送到Safari的权限,并且Finder不会提示您输入权限,它只会返回错误。
  • 简化的自动化过程需要某种类型的机制来授予先验权限;一个示例是将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上的自动化功能。

    关于automator - macOS Mojave,Automator “Not authorized to send Apple events to System Events.”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51299066/

    10-10 03:45