Wie kann ich ein unsigniertes Skript in Automator ausführen?

Ich kann das angesehene Perl-Skript exiftool über die Befehlszeile in Terminal ausführen und das gewünschte Ergebnis erzielen, aber wenn ich es in Automator as a Service einbinde, erhalte ich eine allgemeine Fehlermeldung und das Perl-Skript wird nicht ausgeführt. Wenn ich in das system.log schaue, finde ich: "Der Vorgang konnte nicht abgeschlossen werden. (OSStatus-Fehler -67062.)", dh das Codeobjekt ist nicht signiert.

Richtig, exiftool ist nicht signiert, und ich kann nichts dagegen tun. Ich musste Gatekeeper umgehen, um es in Yosemite (10.10.5) zu installieren. Aber das Skript ist in Fotografenkreisen gut bekannt und wurde von vielen verwendet, um die EXIF-Informationen in Bilddateien zu bearbeiten.

Ich habe versucht, das Skript oder meinen Automator-Workflow zu Systemeinstellungen > Sicherheit & Datenschutz > Datenschutz > Barrierefreiheit hinzuzufügen , aber das Panel akzeptiert auch nicht.

Gibt es eine Möglichkeit, Automator anzuweisen, dieses unsignierte Skript zu akzeptieren, oder einen Befehl oder Schalter, den ich in mein Bash-Skript einfügen kann, damit es akzeptiert wird?

Hier ist mein aktuelles Shell-Skript:

for f in$@do
exiftool -overwrite_original -AllDates-=1 "$f"
done

Danke für jede Hilfe.

Antworten (2)

Die exiftoolinstalliert in /usr/bin. Unter SIP ist dies nicht erlaubt. Ich gehe davon aus, dass der Entwickler dies irgendwann ändern wird.

Wenn Sie /usr/local/bines installieren, sollte es funktionieren, und Sie müssen nichts überschreiben.

BEARBEITEN Ich glaube, das Neueste wurde geändert, um es zu installieren. /usr/local/binIch habe mich nie darum gekümmert, es selbst zu installieren, ich führe es einfach aus einem lokalen Verzeichnis aus.

OK, es stellte sich heraus, dass ich zwei Dinge falsch gemacht hatte und keines davon damit zu tun hatte, dass exiftool nicht signiert war. Irgendetwas verursacht, dass mein system.log mit einiger Häufigkeit „Codeobjekt ist nicht signiert“ meldet, und nach weiterer Prüfung begann ich zu vermuten, dass es nicht mein Automator-Skript war, weil sie generiert wurden, obwohl ich nicht versuchte, Automator auszuführen .

Fehler 1: In meiner DO-Schleife habe ich geschweifte Anführungszeichen eingefügt, die den Shell-Skriptfehler generiert haben. Indem sie durch Standard-Anführungszeichen " ersetzt wurden, verschwand der Shell-Skriptfehler.

Fehler 2: Ich hatte die Pass-Eingabe als stdin festgelegt, es hätte als Argumente gelten sollen

Bonus: Phil, der Autor von exiftool, der diese Antworten fand, die mich besiegt hatten, schlug eine einzelne Zeile vor, die effizienter als meine DO-Schleife ist und sehr gut funktioniert:

exiftool -overwrite_original -AllDates-=1 "$@"