Applescript wird mit Fehler beendet, wenn es über launchd ausgeführt wird

Ich habe ein Applescript, das sowohl im Skripteditor als auch über einen osascriptBefehl im Terminal wunderbar läuft. Das Skript kommuniziert mit der Reminders.app, um iCloud-Erinnerungseinträge an einige Parsing-Skripte auf meinem Mac weiterzuleiten.

Aber wenn ich versuche, es zu starten, erscheinen ein paar Fehler im Systemprotokoll:

Aug 11 16:43:07 machinename osascript[19678]: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/FITS.osax"
Aug 11 16:43:07 machinename osascript[19678]: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/SIMBL.osax"
Aug 11 16:43:07 machinename tccd[3421]: Unable to prompt for client without display name (osascript)
Aug 11 16:43:07 machinename Reminders[18838]: Error: Event Not Permitted for command Intrinsics.get
    Direct Parameter: <NSPropertySpecifier: scriptingReminders of scriptingLists named "Today" of scriptingAccounts named "iCloud">
    Receivers: <NSPropertySpecifier: scriptingReminders of scriptingLists named "Today" of scriptingAccounts named "iCloud">
    Arguments:     {
    }
Aug 11 16:43:07 machinename com.apple.xpc.launchd[1] (local.reminders.taskpaper.sync[19678]): Service exited with abnormal code: 1

Den SIMBL-Performance-Fehler halte ich für harmlos – das ist ein bekanntes Problem .

Ich vermute ebenso für den FITS-Fehler.

Aber ich brauche etwas Hilfe bei der Behebung der tccd- und Reminders-Fehler .... Für mich klingt es so, als müsste ich einfach irgendwie zusätzliche Berechtigungen erteilen, wenn das Skript über launchd ausgeführt werden soll.

Hier ist auch die plist-Datei, falls es hilft:

<?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>Label</key>
            <string>local.reminders.taskpaper.sync</string>
        <key>ProgramArguments</key>
            <array>
                <string>osascript</string>
                <string>/Users/eck/Library/Scripts/reminders_to_taskpaper.scpt</string>
            </array>
        <key>StartInterval</key>
            <integer>600</integer>
    </dict>
</plist>
Was zeigen Sie in Ihren Systemeinstellungen unter Sicherheit und Datenschutz unter Eingabehilfen für Apps, die Ihren Computer steuern dürfen? Kann dort eine Antwort finden.
@bjbk: gute idee! In der Tat haben andere osascriptund andere Shell-Skripte in die Liste der unterstützenden Zugriffe aufgenommen, obwohl dies das "Hacken" ihrer sqlite3-Datenbank beinhaltet (siehe hier und hier , wenn Sie interessiert sind). Zu diesem Zweck arbeite ich immer noch daran, eine Verbindung zur db-Datei herzustellen. Ein paar Möglichkeiten dafür...

Antworten (1)

Wie bjbk kommentierte, bestand das Problem darin, dass osascript keinen Assistive Access hatte. .appWährend es einfach ist , Programme zu dieser Liste hinzuzufügen ( System Preferences> Security & Privacy> Accessibility​​), erlaubt OS X nicht das Hinzufügen von Binärdateien über die GUI. Lesen Sie den Blog von Jacob Palmela, um zu erfahren, wie Sie ein Programm über die Befehlszeile hinzufügen, oder kopieren Sie einfach den folgenden Befehl und fügen Sie ihn ein, indem Sie vor der Ausführung den Pfad des hinzuzufügenden Programms an der angegebenen Stelle ersetzen:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceAccessibility','PROGRAM-TO-BE-ADDED',1,1,1,NULL)"

sudoist notwendig, da die sqlite3-db-Datei root gehört.