Ich habe diesen Fehler unter OS X El Capitan Version 10.11.6 reproduziert und eine Problemumgehung gefunden:
Error:
Sie können die Anwendung "Open_todo_in_vim" nicht öffnen, da PowerPC-Anwendungen nicht mehr unterstützt werden
Bild:
So reproduzieren Sie den Fehler:
Vollständige Anweisungen zur Reproduktion finden Sie hier:
https://mathiasbynens.be/notes/shell-script-mac-apps
Jist:
Speichern Sie dies als appify.sh
#!/usr/bin/env bash
APPNAME=${2:-$(basename "${1}" '.sh')};
DIR="${APPNAME}.app/Contents/MacOS";
if [ -a "${APPNAME}.app" ]; then
echo "${PWD}/${APPNAME}.app already exists :(";
exit 1;
fi;
mkdir -p "${DIR}";
cp "${1}" "${DIR}/${APPNAME}";
chmod +x "${DIR}/${APPNAME}";
echo "${PWD}/$APPNAME.app";
Speichern Sie es als /usr/local/bin/appify.sh, für das Root-Rechte erforderlich sind. Geben Sie ihm ausführbare Berechtigungen und führen Sie es dann folgendermaßen aus:
$ appify your-shell-script.sh "Your App Name"
Doppelklicken Sie auf "Ihr App-Name".
Beachten Sie den oben gezeigten Fehler.
Warum passiert dieser nervige Fehler?
Es ist eine Kombination aus vielen Gründen:
Sicherheit: Die Entwickler bei Apple bekämpfen Cyberkriminalität mit Skripten im Hintergrund, die Ihre angedockten Elemente ersetzen. Straßensperren lassen erfolgreiche Viren vergangener Zeiten eine Mauer treffen. Dies ist eine dieser Wände.
Geld: Die Entwickler bei Apple möchten, dass Sie ihre Anwendungen verwenden, nicht die Anwendungen, die Sie über das Internet gefunden haben, da jede von Ihnen verwendete App ein potenzieller Angriffsvektor von skrupellosen Entwicklern weltweit ist.
Schutz der Benutzer vor sich selbst: Apple-Entwickler möchten nur, dass Power-User angedockte Elemente erstellen. Sie möchten nicht, dass Anfänger herausfinden, dass "Hey! Jeder kann some_low_level_guts_script.sh
auf das OSX-Dock ziehen und es löst mein Problem! Apple verhindert dies aus dem gleichen Grund, aus dem Eltern Bleichmittel verwenden." unter dem Waschbecken hinter verschlossenen Türen, wenn Kleinkinder in der Nähe sind.
Hacky Workaround, damit Sie Ihr Skript ohne den PowerPC-Anwendungsfehler ausführen können:
Die Antwort, die erklärt, wie Shell-Skripte vom OS X-Dock ausgeführt werden, habe ich hier gefunden: https://stackoverflow.com/a/21048589/445131
Jist of Hacky-Problemumgehung
- Erstellen Sie Ihr Shell-Skript
whatever.sh
- Machen Sie Ihr Shell-Skript ausführbar.
- Benennen Sie Ihre Whatever.sh um, um ein
.app
Suffix zu erhalten:whatever.sh.app
- Ziehen Sie
whatever.sh.app
zum OSX-Dock.
- Benennen Sie Ihr Skript wieder in um
whatever.sh
.
- Klicken Sie mit der rechten Maustaste auf die Datei im Finder und klicken Sie auf die Option "Informationen abrufen".
- Stellen Sie am unteren Rand des Fensters das Shell-Skript so ein, dass es mit dem Terminal geöffnet wird.
Und der oben erwähnte Fehler tritt nicht mehr auf. Durch Doppelklicken auf die Datei im OSX-Dock wird das Shell-Skript wie erwartet ohne Fehler ausgeführt.