Verwendung von Automator-Diensten in von Fluid erstellten Apps in Mojave

0

Ich hatte ein Problem mit Spotlight und ein Apple-Supportmitarbeiter hat mich auf Mojave "upgraden" lassen und jetzt bin ich sauer. Keiner meiner Automator-Dienste funktioniert mehr in meinen Fluid Apps! Ich habe ungefähr ein halbes Dutzend Fluid-Apps, sodass ich sie entweder allen Desktops zuweisen kann (und andere Browserfenster nicht beeinflusst) oder mehrere Sitzungen mit einigen Websites durchführen kann, die nur ein Browserfenster unterstützen, das für ihre Site geöffnet ist (z. B. die Galaxie) Web-App). Ich habe über ein Dutzend Automationsdienste, die äußerst nützlich sind. Die meisten akzeptieren ausgewählten Text "aus einer beliebigen Anwendung" und führen verschiedene Aktionen mit diesem Text aus (z. B. Statistiken zu ausgewählten Nukleotiden melden).

Wenn ich nun versuche, einen Dienst für ausgewählten Text in einer von Fluid erstellten App auszuführen, wird die Fehlermeldung "Bei der Aktion" AppleScript ausführen "ist ein Fehler aufgetreten:" Nicht berechtigt, Apple-Ereignisse an Systemereignisse zu senden. " Wenn diese Dienste Apps wären, könnte ich sie problemlos in den Systemeinstellungen zu Sicherheit & amp; Datenschutz - & gt; Datenschutz - & gt; Eingabehilfen, aber es handelt sich um Workflows, die als Dienste installiert sind (befindet sich in ~/Library/Services/ ) und kann daher nicht hinzugefügt werden. Ich habe die von Fluid erstellten Apps hinzugefügt, aber das beendet den Fehler auch nicht.

Ich habe mit dem Apple Support gesprochen und sie gaben an, dass die von Fluid erstellte App aufgrund von Codesignaturen nicht mit Diensten funktioniert. Die App muss von einem von Apple anerkannten Entwickler stammen, um Zugriff zu erhalten!

Ich verstehe die Sicherheitsbedenken voll und ganz, aber das ist sehr frustrierend. Weiß jemand, wie man zulässt, dass Dienste in von Fluid erstellten Apps funktionieren?

enter image description here

UPDATE: Ich habe versucht, die App (z. B. "Galaxy1.app") sowohl im Bereich "Barrierefreiheit" als auch im Bereich "Vollständiger Festplattenzugriff" der Seite mit den Einstellungen für das Sicherheits- und Datenschutzsystem hinzuzufügen, und erhalte weiterhin den Fehler:

enter image description here enter image description here

hepcat72
quelle

Antworten:

0

Sie müssen Automator und alle von Fluid erstellten Apps sowohl im Menü "Barrierefreiheit" als auch im Menü "Vollständiger Festplattenzugriff" in den Systemeinstellungen / Sicherheit & amp; Datenschutz / Datenschutz-Registerkarten. Möglicherweise müssen Sie auch System Events.app hinzufügen, um den Zugriff zu ermöglichen. Dann solltest du gut gehen

enter image description here

enter image description here

wch1zpink
quelle
Ich habe bereits eine der Apps an beiden Orten hinzugefügt und die App beendet und neu gestartet, aber ich erhalte immer noch den Fehler.
hepcat72
Du meinst, füge die System Events App an beiden Orten hinzu?
hepcat72
Nun, ich habe das versucht ... den gleichen Fehler.
hepcat72
Die Automator-App ist bereits vorhanden, ebenso wie der Finder und eine Reihe anderer Apps, in denen ich den Dienst bereits verwendet habe. Es sind nur von Fluid erstellte Apps, in denen die Dienste nicht funktionieren. Ich greife über einen Rechtsklick auf ausgewählten Text in der von Fluid erstellten App auf Dienste zu.
hepcat72
Ich kann den Text nicht bereitstellen, wenn ich ihn in Automator ausführe. Ich könnte versuchen, es auszuführen, wie ich es beim Testen während der Entwicklung getan habe, aber ohne den Text funktioniert es nicht. Ich habe über ein Dutzend Workflows und alle führen Aufgaben an DNA-Strings (oder Gleichungen, aber meistens DNA-Strings) aus. Die, die ich jetzt verwenden möchte, gibt Statistiken zum Nucleotidgehalt aus.
hepcat72
0

Ich habe einen Workaround für einen Teil meines Problems gefunden. Ich werde diese (meine) Antwort nicht auswählen, da sie nicht das gesamte Problem löst. Der Hauptgrund, warum ich Fluid verwende, um Galaxie in eine "App" zu wickeln, ist, dass nur 1 Galaxie-Browserfenster geöffnet sein kann. Wenn zwei geöffnet sind, wirken sich die in einem Fenster vorgenommenen Änderungen auf das andere aus. Wenn ich also gleichzeitig an zwei verschiedenen Projekten arbeite, habe ich separate Fluid-Apps verwendet, um zu verhindern, dass die Projekte sich gegenseitig auf die Füße treten. Ich wusste, dass private Browser-Fenster dies auch können, aber ich mochte den Komfort eines Dock-Symbols.

Ich habe gerade ein als App gespeichertes Applescript erstellt, das ein neues privates Safari-Fenster für galaxy.princeton.edu öffnet. Ich habe diese App dann zu Sicherheit & amp; Datenschutz - & gt; Datenschutz - & gt; Zugänglichkeit. Dieses Skript ist etwas vereinfacht von dem, was ich tatsächlich verwendet habe:

tell application "Safari" to activate

tell application "System Events"
    keystroke "n" using {shift down, command down}
    delay 0.5
    keystroke "http://galaxy"
    key code 47
    keystroke "princeton"
    key code 47
    keystroke "edu/"
    keystroke return
end tell

Beachten Sie, dass Applescript abhängig von Ihren Eingabehilfen keine Zahlen, Punkte oder ein paar andere Zeichen eingibt key code 47 für die Punkte.

Wenn ich jetzt diese "App" (die ich mit dem Galaxy-Symbol versehen habe) ausführe, öffnet sich für Galaxy ein neues Safari-Browserfenster.

Auf diese Weise kann ich meine Automator-Dienste auf DNA-Strings in Galaxy ausführen, da Safari die Berechtigung zum Senden von Apple-Ereignissen an System Events.app erhalten kann, während Fluid-Apps dies nicht können (ich glaube, weil sie nicht mit Code signiert sind).

hepcat72
quelle
Angenommen, Safari ist bereits geöffnet, dann ersetzen die folgenden beiden AppleScript-Befehle den angezeigten Code, obwohl Sie möglicherweise a hinzufügen müssen / möchten delay Befehl zwischen ihnen. Für diesen ersten muss Safari nicht den Fokus haben tell application "System Events" to perform action "AXPress" of menu item "New Private Window" of menu "File" of menu bar item "File" of menu bar 1 of application process "Safari" Dieser beseitigt den Rest der Welt key code/keystroke Befehle: tell application "Safari" to set URL of current tab of front window to "http://galaxy.princeton.edu"
user3439894
Vielen Dank. Ich werde das versuchen. Sieht gut für mich aus
hepcat72
Der Code wurde aktualisiert. Vielleicht haben Sie Vorschläge für den Fall, dass die Safari noch nicht läuft ...?
hepcat72
Bemerkenswert: Wenn Sie den Code des Skripts / der App ändern, müssen Sie die App aus der Barrierefreiheit entfernen und erneut hinzufügen. Anschließend werden Sie erneut aufgefordert, zuzulassen, dass Ereignisse an SystemEvents.app gesendet werden, wenn Sie es ausführen.
hepcat72
Betreff: Ihr Kommentar: "Der Code wurde aktualisiert. Sie haben möglicherweise Vorschläge für den Fall, dass die Safari noch nicht läuft ...?" So würde ich wahrscheinlich den Code schreiben.
user3439894