Problema
Applescript ejecutado por osascript no se permite Assistive Access cuando es lanzado por el agente ( ~/Library/LaunchAgents
). Aunque funciona cuando se ejecuta desde el editor de Applescript o la línea de comandos directamente (usando osascript).
Situación
El applescript realiza varias tareas de GUI para la impresión por lotes y se ejecuta dos veces al día. Por lo tanto, necesita permiso para acceder a los dispositivos de asistencia y es lanzado por un agente.
El script se ejecuta como se espera cuando se lanza desde:
- Editor de Applescript
- osascript commandline (no-sudo)
Cuando se lanza por el Agente vuelve:
/location/of/my.scpt: execution error: System Events got an error: osascript does not have access to assistive devices. (-25211)
(Mensaje traducido del holandés por mí.)
Esto me llevó a creer que el problema es con osascript, pero como he dicho anteriormente, funciona bien cuando se introduce directamente desde la línea de comandos utilizando: osascript /location/of/my.scpt
.
Además, basándose en estos dos posts he editado el /Library/Application\ Support/com.apple.TCC/TCC.db
Base de datos SQLite y cuando compruebo la tabla 'access' aparece:
$ 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|
Como se puede ver osascript se permite el acceso y también he añadido el .plist de mi agente para una buena medida.
¿Posible causa?
Lo único que se me ocurre es que, por alguna razón, el script sea ejecutado por un "usuario diferente" cuando es lanzado por un Agente y, por lo tanto, tenga permitidos diferentes dispositivos de asistencia? Parece poco probable, sin embargo, ya que el TCC.db no parece ser específico del usuario y el agente se encuentra en ~/Library/LaunchAgents
.
¿Ayuda, alguien?