Script läuft, als App dann Probleme

JJJonsered

Mitglied
Thread Starter
Dabei seit
12.03.2021
Beiträge
19
Reaktionspunkte
9
Ich bin hier lansam am verzweifeln.

Ich habe einen Script geschrieben, der eine Speicherkarte nach Bildern durchsucht, diese kopiert und in der Vorschau öffnet. Soweit, sogut. Macht es auch ordentlich, wenn ich es über den "Play" Button im Scripteditor nutze.

Nur wenn ich es in eine App umwandle, läuft das ganze nicht. Zum Beispiel öffnet er dann Vorschau auf einmal nicht mehr im Vollbild Modus... Rechte habe ich unter Datenschutz & Sicherheit / Bedienunshilfen gesetzt. Er jammert dennoch genau bei diesem Punkt. Wie gesagt, die Rechte hat die App aber, auch ein Neustart behebt das Problem nicht und die App wird auch weiterhin als "berechtigt" beim ausführen angezeigt.
Habe dann mittels Terminal alle Rechte zurückgesetzt und dann nochmal von Hand hinzugefügt... und immer noch das gleiche Problem...

Hat jemand ein ähnliches Problem oder idealerweise eine Lösung? Aktuell scheint es für mich fast so, dass es ein Bug von Apple ist. MacOS ist auf dem neuesten Stand.

Gruß und Dank
 
Vergleich doch mal mit den Datenschutz Einstellungen vom Skript Editor.
 
Also unter Datenschutz & Sicherheit / Bedienungshilfen sind die Rechte aktiviert. Wie bereits geschrieben.

Wenn ich dann unter Automation schaue, sind die gleichen Scripte unterschiedlich...

Scripteditor & Terminal zeigen da Finder & System Events an und hier funktioniert der Script auch super.

Als App und als Automator Programm wird nur der Finder angezeigt... Nur bringe ich System Events einfach nicht hin und genau hier ist der Knackpunkt, den die Rechte, siehe oben, hätten die Programme ja.
 
Volle Breitseite ;)
Setz stumpf zum testen einfach alles.
 
Volle Breitseite ;)
Setz stumpf zum testen einfach alles.
Wo den? Hab doch bereits geschrieben, wo ich die Rechte gesetzt habe. Weitere wären mir nicht bekannt. Also wo soll ich mehr Rechte setzen???

--

Und die Lösung, die ich gefunden haben, ist eine Script Datei daraus zu machen.

1; als Textdokument speichern ohne Endung.
2; #!/usr/bin/osascript am Anfang hinzufügen
3; "Nutzbar" machen via "chmod +x ScriptFile"

Damit läuft das ganze nun. Im Gegensatz zu allen anderen Methoden. Natürlich braucht es die gleichen Rechte bei Apple Script.
Wenn man in den Terminal Optionen noch das automatische schließen vom Terminal Fenstern aktiviert, wenn es keinen Fehler gab, hat man damit einen sauberen Programmablauf.
 
Als App und als Automator Programm wird nur der Finder angezeigt... Nur bringe ich System Events einfach nicht hin und genau hier ist der Knackpunkt, den die Rechte, siehe oben, hätten die Programme ja.
Als ausführbares Programm muss sich das bisherige Script die Berechtigungen vom Anwender holen, damit ein Programm ein anderes per AppleEvent ansprechen/steuern darf. Das geht per sogenanntem Entitlement, hier dürfte es sich um "NSAppleEventsUsageDescription" handeln, die in der info.plist mit einem entsprechenden Text versehen enthalten sein muss., z.B. als

Code:
<key>NSAppleEventsUsageDescription</key>
<string>App X needs to control System Events</string>
 
Warum fügt der Skript-Editor das eigentlich nicht automatisch hinzu, wenn der es als App speichert?
Ja doch, der key wird automatisch (universal für "andere Apps") gesetzt.

Zum Problem:
Da scheint es tatsächlich einen Bug mit der Benutzung von Skript-Apps, die System Events aufrufen, zu geben.
Wenn ich Probleme diesbezüglich habe, hilft bei mir folgendes:

Gehe in die Systemeinstellungen Sicherheit&Datenschutz -> Bedienungshilfen
Entferne deine App mit dem Minus-Zeichen
Füge sie erneut mit drag&drop hinzu (!)

Gruß
 
  • Gefällt mir
Reaktionen: Schnatterente, ruerueka und dg2rbf
Hat bei mir leider nicht funktioniert. Habe es dann auch mit Reboot versucht, aber der Bug blieb bestehen.
Aber hoffentlich bin ich ne Ausnahme und sonst gäbe es ja immer noch "meinen" Lösungswe
 
Hallo,

ich stolpere des Öfteren über Threads, die dein Problem beschreiben. Wie schon geschrieben, hilft "meine" Methode bei mir immer.

Nichts desto trotz gäbe es noch weitere Wege, diesen Bug möglicherweise zu umgehen:

1) speichere dein Skript als "Skript" und erstelle eine App, die dieses Skript aufruft
AppleScript:
run script file "macOS:Users:jj:Desktop:meinSkript.scpt"
Natürlich muss dieser App dann auch die Berechtigung in Sicherheit&Datenschutz -> Bedienungshilfen gegeben werden....
Eventuell klappt das.

2) was in der Regel keine Probleme macht:
Erstelle einen Kurzbefehl (Aktion: AppleScript ausführen)
In den Kurzbefehl-Details kannst du "Als Schnellaktion verwenden" wählen und ein Tastaturkurzbefehl zum Ausführen hinzufügen
Kurzbefehle.app in Sicherheit&Datenschutz -> Bedienungshilfen eintragen.


Gruß
 
1) speichere dein Skript als "Skript" und erstelle eine App, die dieses Skript aufruft
AppleScript:
run script file "macOS:Users:jj:Desktop:meinSkript.scpt"
Natürlich muss dieser App dann auch die Berechtigung in Sicherheit&Datenschutz -> Bedienungshilfen gegeben werden....
Eventuell klappt das.

ist das in etwa das gleiche, was ich gemacht habe?

Und die Lösung, die ich gefunden haben, ist eine Script Datei daraus zu machen.

1; als Textdokument speichern ohne Endung.
2; #!/usr/bin/osascript am Anfang hinzufügen
3; "Nutzbar" machen via "chmod +x ScriptFile"

Also für das System?

Danke
 
ist das in etwa das gleiche, was ich gemacht habe?
ja nee, das war von mir ungenau ausgedrückt:
das im ersten Beitrag von dir genannte AppleScript im Dateiformat "Skript" speichern und ein zweites AppleScript mit dem von mir geposteten (und von dir den Pfad angepassten) Code erstellen, welches du im Dateiformat "App" speicherst. Diese App ruft dann beim Start das Skript auf und führt es aus.
Die Idee dahinter ist, dass es auf diesem Wege eventuell funktioniert... muss aber nicht.

Wie schon geschrieben: mit der App "Kurzbefehle" erstellte Kurzbefehle, die "System Events" aufrufen, machen in der Regel keine Probleme.
Das wäre ein Versuch wert.
 
Zurück
Oben Unten