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

2

Tengo un applecript que se ejecuta perfectamente en el Editor de secuencias de comandos, así como en un comando osascript en la Terminal. El script habla con Reminders.app para pasar las entradas del recordatorio de iCloud a unos pocos 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 - esto es un problema conocido .

Estoy asumiendo lo mismo por el error de FITS.

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

Aquí también está el archivo plist, 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>
    
pregunta courtyardz 12.08.2015 - 00:28

1 respuesta

2

Como comentó bjbk, el problema era que osascript no tenía acceso de asistencia. Si bien es fácil agregar .app programas a esta lista ( System Preferences > Security & Privacy > Accessibility ), OS X no permite que se agreguen binarios a través de la GUI. Consulte blog de Jacob Palmela para saber cómo agregue un programa a través de la línea de comandos, o simplemente copie y pegue el siguiente comando, sustituyendo la ruta del programa que se agregará donde se indique 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)"

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

    
respondido por el courtyardz 16.09.2015 - 02:28

Lea otras preguntas en las etiquetas