Wie kann ich herausfinden, welche Mac-Apps 32-Bit sind?

Das gab Apple am 28. Juni 2017 bekannt

macOS High Sierra wird die letzte macOS-Version sein, die 32-Bit-Apps ohne Kompromisse unterstützt.

Wie kann ich herausfinden, welche Apps auf meinem Mac 32-Bit sind, damit ich sehen kann, ob ich sie aktualisieren muss?

Werden sie ihre eigene 64-Bit-Grafikkarte herstellen?
Was genau meinst du mit "64-Bit-Grafikkarte", @Physics-Compute? Ich nehme an, Sie beziehen sich auf die Speicherbandbreite? Das hat nichts mit der Bitanzahl des Prozessors oder der Unterstützung des Betriebssystems zu tun. Auf einem 64-Bit-Betriebssystem benötigen Sie keine 64-Bit-Grafikkarte. Tatsächlich funktionieren 64-Bit-Grafikkarten problemlos auf 32-Bit-Betriebssystemen (was natürlich nicht auf Apps zutrifft).
@CodyGray Ich würde annehmen, dass es sich auf die Anzahl der Adressbits bezieht, die es für DMA-Operationen unterstützt. Es ist ein Problem, wenn Sie mehr Speicher haben, als mit 32 Bit adressiert werden kann, und Sie einen Puffer für DMA zugewiesen haben, den Sie einer 32-Bit-Hardware mitteilen müssen.
Entschuldigung, ich meinte genauer 64-Bit-Treiber. Sind die Grafiktreiber nicht überwiegend 32-Bit, was erfordert, dass alle Prozesse, die sie verwenden, ebenfalls im 32-Bit-Modus sind? Ein Prozess, der heute normalerweise 64-Bit ist, muss IPC mit einem 32-Bit-Prozess verwenden, um mit den 32-Bit-Grafikkartentreibern zu kommunizieren. Das Nichtzulassen von 32-Bit-Treibern oder -Prozessen scheint ein Problem zu sein, wenn die Hersteller von Grafikkarten keine 64-Bit-Treiber erstellt haben, oder?
Videotreiber können unmöglich 32-Bit sein, da ein 64-Bit-Kernel keine 32-Bit-Treiber laden/verwenden kann. Grafikkartenhersteller produzieren seit einiger Zeit 64-Bit-Treiber, und sie müssen dies auch für andere Betriebssysteme tun, also ist es nicht gerade ein verrücktes Unterfangen. Und der Treiber würde das DMA-Zeug handhaben, über das Kasperd spricht, also ist das auch kein Problem.

Antworten (6)

Eine Möglichkeit, herauszufinden, welche 32-Bit-Apps Sie noch verwenden, ist die Verwendung der Option „Systeminformationen“ unter „Über diesen Mac“. Die genauen Schritte unterscheiden sich je nach der Version von macOS, die Sie ausführen, aber unten sind die allgemeinen Schritte, die Sie je nach Ihren Umständen befolgen können sollten:

  1. Klicken Sie auf das Apple-Menü
  2. Wählen Sie Über diesen Mac
  3. Klicken Sie im angezeigten Fenster „Über diesen Mac“ auf die System Report...Schaltfläche unten links (wenn Sie ein älteres Betriebssystem verwenden, müssen Sie möglicherweise auf die More Info...Schaltfläche unten in der Mitte klicken).
  4. Dadurch wird das Systeminformationsfenster (oder das System-Profiler-Fenster in älteren Versionen des Betriebssystems) geöffnet.
  5. In der Sidebar auf der linken Seite sehen Sie eine Reihe von Überschriften und Unterüberschriften.
  6. Unter der Überschrift Software (es ist die dritte von unten) sehen Sie eine Unterüberschrift mit der Bezeichnung Anwendungen. Klicken Sie darauf.
  7. Im Hauptteil des Fensters auf der rechten Seite sehen Sie eine Liste von Apps erscheinen. Seien Sie geduldig , da die Befüllung etwas dauern kann.
  8. Sobald die Liste angezeigt wird, sehen Sie oben Spaltenüberschriften.
  9. Die letzte Spalte trägt die Bezeichnung 64-Bit (Intel)Klicken Sie auf diese Spaltenüberschrift, um Apps danach zu sortieren, ob sie 64-Bit sind oder nicht (dh für jede App wird entweder ein Ja oder ein Nein aufgeführt).

Sehen Sie sich das Bild unten als Beispiel an:

Geben Sie hier die Bildbeschreibung ein

HINWEIS: Im obigen Bild habe ich die letzte Spalte absichtlich nicht sortiert, damit Sie Einträge sehen können, für die sowohl ein Ja als auch ein Nein aufgeführt sind. Im obigen Beispiel sehen Sie also, dass iMovie v10.1.6 eine 64-Bit-App ist, während iMovie 9.0.9 nicht 64-Bit ist.


Bearbeiten - Wenn die obigen Schritte zu einem Fehler führen

Ich habe Berichte gesehen, dass eine kleine Anzahl von Benutzern die Fehlermeldung „Das Plug-in hat beim Sammeln dieser Informationen nicht schnell genug geantwortet“ erhalten, während sie darauf warten, dass die Liste gefüllt wird.

Beenden Sie in diesem Fall die Systeminformations-App (oder die Systemprofiler-App in älteren Versionen von macOS) und starten Sie erneut, aber überspringen Sie diesmal die Schritte 1 bis 4 und gehen Sie direkt zu Ihrem Ordner „Programme/Dienstprogramme“ und öffnen Sie die Systeminformations-App (oder System Profiler-App) direkt von dort. Befolgen Sie nach dem Öffnen die Schritte 5 bis 8 oben.

Es kommt immer wieder zu einer Zeitüberschreitung mit der Meldung "Das Plug-in hat beim Sammeln dieser Informationen nicht schnell genug reagiert."
Danke @Josh, dass du mich an diese Antwort erinnert hast. Mir wurde Ende letzten Jahres bewusst, dass dies ein mögliches Problem war, aber ich vergaß, dass ich diese Frage beantwortet hatte! Ich habe gerade meine Antwort mit einer möglichen Problemumgehung bearbeitet, die für die meisten Benutzer funktioniert. Lassen Sie mich wissen, wenn Sie immer noch Probleme haben.
Gleiches Problem beim direkten Öffnen aus /Applications/Utilities.

Klicken Sie im Finder auf cmdF, um ein Suchfenster zu erhalten.

  • Wählen Sie Suchen: Dieser Mac
  • Treffen Sie das erste Suchkriterium und wählen Sie " Andere... " und hier " Ausführbare Architekturen " " Ist " " i386 "
  • Klicken Sie auf die Schaltfläche + und fügen Sie ein zweites Kriterium „ Ausführbare Architekturen “ „ Ist nicht “ „ x86_64 “ hinzu.

    Geben Sie hier die Bildbeschreibung ein

und Sie erhalten eine Liste aller nur i386-Apps (dh 32-Bit-Apps).


Im Terminal geht das mit:

mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"
Seltsamerweise nimmt diese Methode ein paar PDF-Dateien von vor Jahren auf, wie "Willkommen bei Leopard". Ansonsten scheint es gut zu funktionieren.
@Thunderforge "Welcome to Leopard" ist kein .pdf, sondern eine App IIRC, wenn Sie es öffnen, wählt es Ihre Sprach-PDF und öffnet es in der Vorschau.
@Manuel Interessant! Ich war abgeschreckt von der Tatsache, dass es ein PDF-Symbol hat. Mir ist nicht einmal in den Sinn gekommen, dass es sich tatsächlich um eine App handelt, die ein PDF für Sie ausgewählt hat.
Mir ist gerade aufgefallen, dass diese Methode keine Apps in ~/Library/Application Supportfindet, wie z. B. Steam-Spiele. Die andere Lösung tut es. Weißt du, ob es eine Möglichkeit gibt, die Suche dahingehend zu ändern?
@Thunderforge die Terminalversion findet Steam-Spiele.

Die anderen Antworten werden meines Wissens nach 32-Bit-MacOS-Apps (und möglicherweise einige 32-Bit-Binärdateien) im Metadatenindex auflisten. Wenn Sie jede nur 32-Bit-ausführbare Binärdatei auf Ihrem System auflisten möchten, versuchen Sie es mit diesem Einzeiler:

find / -type f -perm +111 -exec file -p {} \; -exec head -c 1 /dev/zero \; | xargs -0 -n 1 sh -c 'echo "$@" | head -n 1' -- | grep -v x86_64 | grep -E Mach-O.+i386

Wenn Sie GNU findutils installiert haben, kann dies wahrscheinlich erheblich vereinfacht werden. Ein Teil der Komplexität besteht hier darin, die Einschränkungen der in macOS enthaltenen BSD-Findutils zu überwinden.

Dieser einzeilige Terminal-Befehl sammelt eine Liste von Apps in einer Textdatei auf Ihrem Desktop. Es erfasst die 6 Zeilen vor und 2 Zeilen nach jedem Vorkommen von „(Intel): No“ in der Abfrage. Es gräbt sich jedoch nicht in die 32-Bit-unterstützenden Binärdateien oder Bibliotheken für bereits kompilierte 64-Bit-Apps ein. Diese Liste ist viel umfangreicher und ich kann keine Ressource finden, die eine tiefere Ebene der Besorgnis anspricht, wenn es sich überhaupt um ein Problem handelt.

system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/32BitAppList.txt

Wenn Sie nur eine einzelne Anwendung prüfen müssen:

file myapplication

Zum Beispiel mein Raytracer rt:

==> file rt
rt: Mach-O 64-bit executable x86_64
==>

Der fileBefehl sieht sich im Grunde viele Arten von Dateien an und versucht, sie zu identifizieren. Bei ausführbaren OSX-Dateien werden Sie fast immer eine oder mehrere davon sehen: i386, x86_64 und ppc, die jeweils 32-Bit-Intel/Amd-Architekturen, 64-Bit-Intel/Amd-Architekturen und PowerPC-Architekturen sind (diese sind ziemlich alt jetzt.) Sie müssen sich also wirklich nur um i386 (32-Bit-Anwendungen) und x86_64 (64-Bit-Anwendungen) kümmern.

Bei gepackten Anwendungen sollte man mit der rechten Maustaste klicken und Paketinhalt anzeigen . In den meisten Apps findet contents → macOSman darunter eine ausführbare Datei. Sein Pfad sollte als Argument für verwendet werden file.

Denn file /Applications/BitTorrent.app/Contents/MacOS/BitTorrentich bekomme Mach-O executable i386. Was bedeutet das ?
Dies bedeutet, dass die Anwendung eine ausführbare 32-Bit-Datei ist; und die Implikation ist, dass es nicht in der Lage sein wird, unter den neuesten 64-Bit-Betriebssystemen von Apple zu laufen.
Ich konnte die Tabelle nicht finden, in der ich Bedeutungen von Dingen wie i386usw. finden könnte. Könnten Sie bitte eine solche Referenz hinzufügen?
Der fileBefehl sieht sich im Grunde viele Arten von Dateien an und versucht, sie zu identifizieren. Bei ausführbaren OSX-Dateien werden Sie fast immer eine oder mehrere davon sehen: i386, x86_64, und ppcdie jeweils 32-Bit-Intel/Amd-Architekturen, 64-Bit-Intel/Amd-Architekturen und Power-PC-Architekturen sind (letztere sind jetzt ziemlich alt. ) Sie müssen sich also wirklich nur um i386 (32-Bit-Anwendungen) und x86_64 (64-Bit-Anwendungen) kümmern. Der einzige Grund, warum sie von Bedeutung sind, ist, dass Apple die Unterstützung für 32-Bit-Anwendungen einstellt.

Ich hatte immer wieder die Meldung "Das Plug-in hat beim Sammeln dieser Informationen nicht schnell genug reagiert." Problem und konnte es mit keiner der vorgeschlagenen Methoden lösen.

Es stellt sich heraus, dass es ein Befehlszeilentool namens system_profilergibt, das dieselben Informationen bereitstellt.

Also ging ich direkt zur Quelle und schrieb ein kleines Ruby-Skript, um eine Liste mit weiteren Informationen darüber zusammenzustellen, wo sich die Anwendung befindet und die Installationsquelle (falls verfügbar).

Das Skript finden Sie hier .