In früheren Versionen von OS X mussten Sie, um AppleScript ausführen zu lassen, die Option "Zugriff für Hilfsgeräte aktivieren" im Bereich "Eingabehilfen" der Systemeinstellungen aktivieren.
Bei Mavericks ist dies jetzt eine pro-App-Einstellung, die von Security & amp; Datenschutz - & gt; Zugänglichkeit. Wie aktiviere ich den assistiven Zugriff, wenn das Skript über die Befehlszeile mit osascript in einer Jenkins-Task ausgeführt wird? Soweit ich weiß, gibt es keine GUI-Aufgabe, die man dann autorisieren kann; Ich erhalte keinen Nachrichtendialog, der nach Berechtigungen fragt. Die Fehlermeldung, die ich in der Jenkins-Ausgabe bekomme, lautet:
%Vor%Ich habe auch versucht, dem Berechtigungsdialog alle Anwendungen hinzuzufügen und trotzdem den Fehler "Erlauben" zu erhalten.
Problem
Wenn ich es richtig verstehe, möchten Sie GUI-Skripting über eine Befehlszeile aktivieren.
Lösung
Ich glaube, Sie müssen den folgenden Code verwenden, um GUI-Skripting innerhalb eines AppleScript zu aktivieren. Dieses Skript kann dann über die Befehlszeile ausgeführt werden. Sie können den Anzeigedialog bei Bedarf ausschließen - dieses Skript zeigt nur den Dialog an, um zu bestätigen, dass die GUI-Einstellungen aktiviert wurden.
%Vor%Die wichtigsten Teile davon sind:
%Vor%Sie könnten die oben erwähnten Schlüsselkomponenten in einer Datei kombinieren und osascript anweisen, sie auszuführen:
%Vor%Wenn Sie osascript mehrere Befehle in einer einzigen Zeile senden möchten, anstatt eine Skriptdatei zu verwenden, können Sie versuchen (beachten Sie mehrere -e Flags pro Befehl):
%Vor%Sie können dies mit sudo (falls erforderlich) ausführen:
Wenn Sie einen solchen Fehler beim Ausführen solcher Skripte vom Terminal erhalten, müssen Sie die Barrierefreiheit für Terminal in den Datenschutzeinstellungen aktivieren (Mavericks, siehe Abbildung unten)
%Vor%
Systemeinstellungen & gt; Sicherheit & amp; Datenschutz & gt; Eingabehilfen (Klicken Sie, um Terminal zu aktivieren)
Ich habe daran gearbeitet, indem ich den jenkins-Sklaven mit JNLP anstelle von SSH gestartet habe. Sie können dies in den Slave-Knoteneinstellungen auf dem jenkins-Master einrichten.
Um dies einzurichten, habe ich ein Automator-Skript erstellt, das bei der Anmeldung ausgeführt wird, so dass der jenkins-Slave als echter Benutzer ausgeführt wird.
%Vor%Dies führt dazu, dass osx ein Popup öffnet und einen Anwendungszugriff auf das Popup für assistive Geräte für das Automator-Skript aktiviert, das dann den Zugriff auf alles ermöglicht.
Für mich ist das keine vollständige Lösung, da ich Probleme mit JNLP-Slaves habe, die mehr offline gehen als die SSH-gestarteten Slaves. So habe ich dieses Problem gefunden: D
Eine andere Lösung besteht darin, den Befehl auszuführen, indem ein Terminal erzeugt wird, von dem ich vermute, dass es nicht in der gesperrten Apple-Liste von Dingen für den Zugriff auf Zugriffe ist.
Nach ein bisschen Herumspielen fand ich folgendes über ssh
%Vor%Dies öffnet dann wieder den Dialog "assistieren" und Sie können den Zugriff bestätigen
Sie müssen das Terminal so einrichten, dass es sich nach Erfolg automatisch schließt, sonst werden Sie mit Millionen von ihnen enden: D
Tags und Links jenkins macos applescript