it-swarm.com.de

Fehler "Bei assistivem Zugriff nicht zulässig" beim Ausführen von AppleScript über Java

Ich habe eine Jenkins-Konfiguration, die Java-Tests für OS X-App mithilfe von Maven ausführt. Wenn ich versuche, ein AppleScript auszuführen, das unterstützenden Zugriff erfordert, werden verschiedene Fehler angezeigt. Ich habe also versucht, AppleScript auf zwei Arten auszuführen:

  1. ScriptEngine verwenden :

    ScriptEngineManager mgr = new ScriptEngineManager (); ScriptEngine-Engine = mgr.getEngineByName ("AppleScriptEngine"); Engine.eval (Skript);

In diesem Fall schlägt die Skriptausführung mit einem Fehler fehl: Ein Fehler des Typs -10810 ist aufgetreten.

  1. Aufrufen von Javascript . In diesem Fall sieht der Fehler wie folgt aus: Systemereignisse haben einen Fehler erhalten: Javascript ist kein unterstützender Zugriff gestattet. (-1719)

In der Accessibility-Liste habe ich folgende Dinge: SystemUIServer, Skript-Editor, Javascript, Java, MVN, Bash, Terminal. Bei der Ausführung eines Skripts im Skript-Editor oder in JavaScript von Terminal wurde das Skript fehlerfrei übergeben.

Anregungen, was soll ich noch prüfen?

15

Ich denke, du beantwortest deine eigene Frage. Sie können (unter anderem) den assistiven Zugriff für den Skript-Editor ermöglichen. Es funktioniert gut im Skripteditor.

Sie können andere Anwendungen ausprobieren und hinzufügen, um assistiven Zugriff zu haben. Dies kann eine Option sein, wenn der Skripteditor Ihnen nicht die gewünschten Informationen gibt.

enter image description here

12
Nick Groeneveld

Ich finde, dass ich manchmal das übergeordnete Element des Prozesses hinzufügen muss, der neben dem eigentlichen Javascript auch das Javascript aktiviert, unabhängig davon, was in der Fehlermeldung angezeigt wird. Manchmal muss ich auch den Großelternprozess hinzufügen.

/ Bin/bash ruft insbesondere keine unterstützende API auf, aber OSX möchte, dass es aufgelistet wird, obwohl auch das Javascript aufgeführt ist, und ich musste auch agent.jar von TeamCity hinzufügen.

Versuchen Sie also, Ihre JAR-Datei hinzuzufügen, und prüfen Sie, ob ScriptEngine einen zwischengeschalteten Code-Executor verwendet, den Sie ebenfalls aktivieren müssen.

Beachten Sie, dass Sie wahrscheinlich Ihre Einträge entfernen und hinzufügen müssen, wenn Sie die Binärdatei ändern (ich denke, OSX behält eine Art Prüfsumme im letzten Binäreintrag in seinem Datenbankeintrag).

1
android.weasel

Ich habe so etwas wie dieses Problem vor durch Einfügen von Javascript in die TCC.db mit tccutil.py gelöst

Nach der Installation habe ich tccutil.py in den Pfad eingebunden.

Sudo ln -s /source/tccutil/tccutil.py /usr/bin/tccutil.py 

ls -l /usr/bin/tccutil.py 
lrwxr-xr-x  1 root  wheel  26 30 Dec 14:57 /usr/bin/tccutil.py -> /source/tccutil/tccutil.py

Verwenden Sie den folgenden Compand, um zuzulassen, dass der Zugriff auf das Gerät zur Kontrolle Ihres Computers aktiviert ist

Sudo tccutil.py --insert /usr/bin/osascript

Ich habe sogar das Skript hinzugefügt, als das Problem später erneut auftrat.

Sudo tccutil.py --insert $(pwd)/transcribe-audio-to-text.js

Das ist fehlgeschlagen, also habe ich neu gestartet, was funktioniert hat:

transcribe-audio-to-text.js verwendet derzeit Systemereignisse, damit TextEdit eine Textdatei speichern kann. Es ist Teil eines virtuellen Assistenten, der bei 20160105 ein sehr Alpha ist, aber die Quelle ist interessant. virtueller Assistent

Eine weitere Problemumgehung besteht darin, das AppleScript mit dem Skript-Editor zu schreiben, von dort aus als eigenständige App zu speichern und der App assistiven Zugriff zu gewähren. Anschließend können Sie die App nach Bedarf in einer anderen Umgebung wie einer Java-App oder einem Automator-Workflow ausführen.

Siehe auch: https://Apple.stackexchange.com/a/346306/264883

0
Beejor