3 votos

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

Tengo un applescript que se ejecuta maravillosamente en script Editor así como desde un osascript en la Terminal. El script habla con Reminders.app para pasar las entradas de los recordatorios de iCloud a unos cuantos de análisis en mi mac.

Pero cuando intento lanzarlo, 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 SIMBL Performance creo que es inofensivo esto es un problema conocido .

Supongo que lo mismo ocurre con el error FITS.

Pero necesito algo de ayuda para resolver los errores de tccd y Reminders.... Me parece que simplemente necesito proporcionar de alguna manera permisos adicionales 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>

2voto

Boldewyn Puntos 29961

Como ha comentado bjbk, el problema era que osascript no tenía Acceso Asistencial. Aunque es fácil añadir .app a esta lista ( System Preferences > Security & Privacy > Accessibility ), OS X no permite añadir binarios a través de la GUI. Véase Blog de Jacob Palmela para saber cómo añadir un programa a través de la línea de comandos, o simplemente copie y pegue el siguiente comando, sustituyendo en la ruta del programa a añadir donde se indica antes de ejecutarlo:

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 sqlite3 db es propiedad de Root.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X