Problème
Applescript exécuté par osascript n'est pas autorisé. Assistive Access lorsqu'il est lancé par l'agent ( ~/Library/LaunchAgents
). Bien que cela fonctionne lorsqu'il est exécuté à partir de l'éditeur Applescript ou en ligne de commande directement (avec osascript).
Situation
Applescript effectue plusieurs tâches d'interface graphique pour l'impression par lots et est exécuté deux fois par jour. Par conséquent, il doit être autorisé à accéder aux appareils d'assistance et est lancé par un agent.
Le script s'exécute comme prévu lorsqu'il est lancé à partir de:
- Applescript Editor
- ligne de commande osascript (non sudo)
Lorsqu'il est lancé par l'agent, il renvoie:
/location/of/my.scpt: execution error: System Events got an error: osascript does not have access to assistive devices. (-25211)
(Message traduit du néerlandais par moi.)
Cela m'a amené à croire que le problème est lié à osascript, mais comme je l'ai indiqué ci-dessus, il fonctionne correctement lorsqu'il est entré directement à partir de la ligne de commande à l'aide de: osascript /location/of/my.scpt
.
En outre, basé sur celles-ci deux messages j'ai édité le /Library/Application\ Support/com.apple.TCC/TCC.db
La base de données SQLite et quand je vérifie la table 'accès', elle montre:
$ 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|
Comme vous pouvez le constater, l'accès javascript est autorisé et j'ai également ajouté le fichier .plist de mon agent.
Cause possible?
La seule chose à laquelle je puisse penser est que, pour une raison quelconque, le script est exécuté par un "utilisateur différent" lorsqu'il est lancé par un agent et que, par conséquent, différents dispositifs d'assistance sont autorisés? Cela semble toutefois peu probable, car le fichier TCC.db ne semble pas être spécifique à l'utilisateur et l'agent se trouve dans ~/Library/LaunchAgents
.
Aide, quelqu'un?