OSX 10.11 sieht die Anwendung fälschlicherweise als PowerPC

9

Ich habe eine Anwendung erstellt und erfolgreich ausgeführt OSX 10.11. Dann habe ich beschlossen, ein Bundle für die App zu erstellen und es erfolgreich zu starten. Dann habe ich das Bundle in den ApplicationsOrdner verschoben und das Popup wurde nicht mehr angezeigt:

"Sie können die Anwendung" CodeBlocks "nicht öffnen, da PowerPC-Anwendungen nicht mehr unterstützt werden."

Offensichtlich ist dies keine PowerPC-Anwendung. Das Umbenennen der App und das Kopieren an einen anderen Ort, an dem der Mac neu gestartet wurde, löste das Problem nicht.

Ich benutze:

MacBook Air (13 Zoll Mitte 2011), OS X El Capitan (10.11.3)

Wie kann ich verhindern, dass dieser Fehler ausgelöst wird?

user2078621
quelle
Das ist mir nur mit Spotify passiert. Ich konnte es auch nicht reparieren ...
Munesawagi
Versuchen Sie möglicherweise, Ihren Mac neu zu starten oder diese App aus dem ApplicationsVerzeichnis zu verschieben. Dies ist wahrscheinlich ein ElCapitan-Fehler.
Mateusz Szlosek
Ich habe beides getan, es hat nicht funktioniert
user2078621

Antworten:

2

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: Geben Sie hier die Bildbeschreibung ein

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:

  1. 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.

  2. 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.

  3. 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.shauf 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

  1. Erstellen Sie Ihr Shell-Skript whatever.sh
  2. Machen Sie Ihr Shell-Skript ausführbar.
  3. Benennen Sie Ihre Whatever.sh um, um ein .appSuffix zu erhalten:whatever.sh.app
  4. Ziehen Sie whatever.sh.appzum OSX-Dock.
  5. Benennen Sie Ihr Skript wieder in um whatever.sh.
  6. Klicken Sie mit der rechten Maustaste auf die Datei im Finder und klicken Sie auf die Option "Informationen abrufen".
  7. 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.

Eric Leschinski
quelle
Die Gründe machen keinen Sinn, es gibt viele Open-Source-Apps, die kostenlos sind
user151019