Problema
Applescript ejecutado por osascript no está permitido El acceso de asistencia cuando lo ejecuta el agente ( ~/Library/LaunchAgents
). Aunque funciona cuando se ejecuta desde el editor de Apple o desde la línea de comandos directamente (usando osascript).
Situación
El applecript realiza varias tareas GUI para la impresión por lotes y se ejecuta dos veces al día. Por lo tanto, necesita permiso para acceder a Dispositivos de asistencia y es lanzado por un agente.
El script se ejecuta como se espera cuando se ejecuta desde:
- Editor de Appleples
- línea de comandos de osascript (no sudo)
Cuando es lanzado por el Agente, devuelve:
/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 está en osascript, pero como dije anteriormente, funciona bien cuando se ingresa directamente desde la línea de comandos usando:
osascript /location/of/my.scpt
.
También, basado en estas dos publicaciones que edité /Library/Application\ Support/com.apple.TCC/TCC.db
Base de datos SQLite y cuando verifico la tabla de 'acceso' se muestra:
$ 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 puede ver, se permite el acceso a osascript y también agregué la lista de mi agente para una buena medida.
Causa posible?
¿Lo único en lo que puedo pensar es que, por algún motivo, el script es ejecutado por un 'usuario diferente' cuando lo ejecuta un Agente y, por lo tanto, se permiten diferentes dispositivos de asistencia? Sin embargo, parece poco probable, ya que TCC.db no parece ser específico del usuario y el agente se encuentra en ~/Library/LaunchAgents
.
¿Ayuda, alguien?