Applescript sale con error cuando se ejecuta a través de launchd

Tengo un applescript que se ejecuta maravillosamente en el Editor de secuencias de comandos, así como desde un osascriptcomando en la Terminal. El script habla con Reminders.app para pasar las entradas de recordatorio de iCloud a algunos scripts de análisis en mi mac.

Pero cuando intento iniciarlo, aparecen algunos errores en el registro del sistema:

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

El error de rendimiento de SIMBL creo que es inofensivo; este es un problema conocido .

Supongo lo mismo para el error FITS.

Pero necesito ayuda para resolver los errores de tccd y Recordatorios... Me parece que simplemente necesito proporcionar permisos adicionales de alguna manera si el script se va a ejecutar a través de launchd.

Aquí está el archivo plist, también, si ayuda:

<?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>
En sus Preferencias del sistema en Seguridad y privacidad, ¿qué muestra en Accesibilidad para las aplicaciones que pueden controlar su computadora? Puede encontrar una respuesta allí.
@bjbk: ¡buena idea! De hecho, otros han obtenido osascripty otros scripts de shell en la lista de acceso de asistencia, aunque esto implica "hackear" su base de datos sqlite3 (consulte aquí y aquí si está interesado). Con ese objetivo, todavía estoy trabajando para conectarme al archivo db. Algunas posibilidades para eso...

Respuestas (1)

Como comentó bjbk, el problema era que osascript no tenía acceso de asistencia. Si bien es fácil agregar .appprogramas a esta lista ( System Preferences> Security & Privacy> Accessibility​​), OS X no permite que se agreguen archivos binarios a través de la GUI. Consulte el blog de Jacob Palmela para saber cómo agregar un programa a través de la línea de comando, o simplemente copie y pegue el siguiente comando, sustituyendo la ruta del programa que se agregará donde se indica antes de ejecutar:

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)"

sudoes necesario porque el archivo sqlite3 db es propiedad de root.