Problema
Applescript eseguito da osascript non è consentito Assistive Access quando viene lanciato dall'agente ( ~/Library/LaunchAgents
). Anche se funziona quando viene eseguito direttamente da editor o riga di comando di Applescript (usando osascript).
Situazione
Il applescript esegue diverse attività GUI per la stampa in batch ed è eseguito due volte al giorno. Pertanto è necessaria l'autorizzazione per accedere a Dispositivi ausiliari e viene avviato da un agente.
Lo script viene eseguito come previsto all'avvio da:
- Editor di Applescript
- commandline osascript (non sudo)
Quando viene avviato dall'agente, restituisce:
/location/of/my.scpt: execution error: System Events got an error: osascript does not have access to assistive devices. (-25211)
(Messaggio tradotto dall'olandese da me.)
Questo mi ha portato a credere che il problema sia con osascript, ma come ho detto sopra, funziona bene quando inserito direttamente da linea di comando usando:
osascript /location/of/my.scpt
.
Inoltre, basato su questi due post ho modificato il /Library/Application\ Support/com.apple.TCC/TCC.db
Database SQLite e quando controllo la tabella 'access' mostra:
$ sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "SELECT * FROM access"
Password:
kTCCServiceAccessibility|com.logitech.gaming|0|1|0|??
kTCCServiceAccessibility|com.valvesoftware.steam|0|1|0|??
kTCCServiceAccessibility|com.blizzard.starcraft2|0|0|1|
kTCCServiceAccessibility|com.apple.AccessibilityInspector|0|1|0|??
kTCCServiceAccessibility|com.apple.ScriptEditor2|0|1|0|??
kTCCServiceAccessibility|com.apple.Terminal|0|1|0|??
kTCCServiceAccessibility|/usr/bin/osascript|1|1|1|
kTCCServiceAccessibility|com.my.label|0|1|1|
kTCCServiceAccessibility|/osascript|1|0|1|
Come puoi vedere, l'accesso di osascript è consentito e ho anche aggiunto il .plist del mio agente per una buona misura.
Possibile causa?
L'unica cosa che posso pensare è che, per qualche motivo, lo script è gestito da un "utente diverso" quando viene lanciato da un agente e quindi sono consentiti diversi dispositivi di assistenza? Sembra improbabile, tuttavia, poiché il TCC.db non sembra specifico dell'utente e l'agente si trova in ~/Library/LaunchAgents
.
Aiuto, chiunque?