Search code examples
automatormacos-mojave

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


After I updated to Mojave, I can no longer use the automator service I've previously been using with the alert below. enter image description here

  • In Security & Privacy, I already checked AppleScript Editor.

Do you see any problem with my code or is this the problem of the newest macOS?

Script

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

enter image description here

enter image description here


Solution

  • This is definitely a part of Mojave's new security framework. In terminal try

    osascript -e 'tell application "Finder"' -e 'set _b to bounds of window of desktop' -e 'end tell'
    

    and you may receive:

    36:42: execution error: Not authorized to send Apple events to Finder. (-1743)
    

    What is supposed to happen on the first execution is the Finder opens a dialog box informing you that terminal is requesting permission to send events to the Finder. If you allow it, then terminal will get added to the Automation page in System Preferences > Security & Privacy > Automation:

    enter image description here

    There's two issues that I see at the moment:

    • the implementation of requesting permission for the scripting action appears to be bugged; I've run other scripts that request permission to send events to Safari and the Finder doesn't prompt for permission, it just returns an error.
    • streamlined automation requires some type of mechanism to have the permissions granted a priori; an example would be utilizing AppleScript with Ansible and being unable to preload grants

    Others have written up more extensive information about this:

    Hopefully this gets worked out before Mojave ships as it seriously impacts automation capabilities on macOS.