Applescript si chiude con errore quando viene eseguito tramite launchd

3

Ho un applecript eseguito splendidamente in Script Editor e da un comando osascript al Terminale. Lo script parla con Reminders.app per passare le voci del promemoria iCloud su alcuni script di analisi sul mio mac.

Ma quando provo a lanciarlo, compaiono alcuni errori nel registro di 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

L'errore di prestazione SIMBL credo di essere innocuo - questo è un problema noto .

Sto assumendo allo stesso modo l'errore FITS.

Ma ho bisogno di aiuto per risolvere gli errori tccd e Reminders .... Mi sembra che abbia semplicemente bisogno di fornire in qualche modo permessi extra se lo script verrà eseguito tramite launchd.

Ecco anche il file Plist, se aiuta:

<?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>
    
posta courtyardz 12.08.2015 - 00:28
fonte

1 risposta

2

Come commentava bjbk, il problema era che osascript non aveva accesso assistivo. Benché sia facile aggiungere programmi .app a questo elenco ( System Preferences > Security & Privacy > Accessibility ), OS X non consente l'aggiunta di file binari tramite la GUI. Vedi blog di Jacob Palmela su come aggiungi un programma tramite la riga di comando, o semplicemente copia e incolla il seguente comando, sostituendo nel percorso del programma da aggiungere dove indicato prima di eseguire:

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 è necessario perché il file sqlite3 db appartiene a root.

    
risposta data 16.09.2015 - 02:28
fonte

Leggi altre domande sui tag