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

28

Am 28. Juni 2017 von Apple bekannt gegeben , dass

macOS High Sierra wird das letzte macOS-Release sein, das kompromisslose 32-Bit-Apps unterstützt.

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

Donnerschmiede
quelle
1
Stellen sie ihre eigene 64-Bit-Grafikkarte her?
2
Was genau meinst du mit "64-Bit-Grafikkarte", @ Physics-Compute? Ich nehme an, Sie beziehen sich auf die Speicherbandbreite? Das hat nichts mit der Bitigkeit des Prozessors zu tun oder wird vom Betriebssystem unterstützt. Sie benötigen keine 64-Bit-Grafikkarte unter einem 64-Bit-Betriebssystem. In der Tat funktionieren 64-Bit-Grafikkarten problemlos unter 32-Bit-Betriebssystemen (was bei Apps natürlich nicht der Fall ist).
Cody Grey
1
@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 über mehr Speicher verfügen, als mit 32 Bit adressiert werden kann, und Sie einen Puffer für DMA zugewiesen haben, über den Sie ein Stück 32-Bit-Hardware informieren müssen.
Kasperd
1
Sorry, ich meinte genauer 64-Bit-Treiber. Sind die Grafiktreiber nicht überwältigend 32-Bit, was erfordert, dass alle Prozesse, die sie verwenden, auch 32-Bit-Modus sind? Bei einem 64-Bit-Prozess muss heute IPC mit einem 32-Bit-Prozess verwendet werden, um mit den 32-Bit-Grafikkartentreibern zu kommunizieren. Das Nichtzulassen von 32-Bit-Treibern oder -Prozessen scheint ein Problem zu sein, wenn Grafikkartenhersteller keine 64-Bit-Treiber erstellt haben.
1
Videotreiber können möglicherweise nicht 32-Bit sein, da ein 64-Bit-Kernel keine 32-Bit-Treiber laden / verwenden kann. Hersteller von Grafikkarten stellen seit einiger Zeit 64-Bit-Treiber her, und dies muss auch für andere Betriebssysteme durchgeführt werden. Es ist also nicht gerade eine verrückte Sache. Und der Fahrer würde mit den DMA-Dingen umgehen, von denen kasperd spricht, also ist das auch kein Problem.
Cody Grey

Antworten:

27

Eine Möglichkeit, festzustellen, welche 32-Bit-Apps Sie noch verwenden, besteht darin, die Option "Systeminformationen" unter "Über diesen Mac" zu verwenden. Die genauen Schritte unterscheiden sich je nach der von Ihnen verwendeten MacOS-Version. Nachfolgend sind die allgemeinen Schritte aufgeführt, die Sie ausführen können sollten, um sie Ihren Umständen anzupassen:

  1. Klicken Sie auf das Apple-Menü
  2. Wählen Sie Über diesen Mac
  3. Klicken Sie im folgenden 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 Fenster "Systeminformationen" (oder das Fenster "System Profiler" in älteren Versionen des Betriebssystems) geöffnet.
  5. In der linken Seitenleiste sehen Sie eine Reihe von Überschriften und Unterüberschriften.
  6. Unter der Überschrift "Software" (die dritte unten) befindet sich eine Unterüberschrift mit der Bezeichnung "Anwendungen". Klicken Sie darauf.
  7. Im Hauptteil des Fensters auf der rechten Seite wird eine Liste der Apps angezeigt. Seien Sie geduldig, da dies einige Zeit in Anspruch nehmen kann.
  8. Sobald die Liste angezeigt wird, werden oben Spaltenüberschriften angezeigt.
  9. Die letzte Spalte ist beschriftet. 64-Bit (Intel)Klicken Sie auf diese Spaltenüberschrift, um Apps nach 64-Bit-Versionen zu sortieren (dh für jede App ist entweder Ja oder Nein angegeben).

Sehen Sie sich das folgende Bild als Beispiel an:

Bildbeschreibung hier eingeben

HINWEIS: In der obigen Abbildung habe ich die letzte Spalte absichtlich nicht sortiert, sodass Einträge mit Ja und Nein angezeigt werden. Im obigen Beispiel sehen Sie, dass iMovie 10.1.6 eine 64-Bit-App ist, während iMovie 9.0.9 keine 64-Bit-App 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 reagiert" erhalten , während sie darauf gewartet haben, dass die Liste ausgefüllt wird.

Beenden Sie in diesem Fall die App "Systeminformationen" (oder die App "System Profiler" in älteren Versionen von macOS) und starten Sie sie erneut. Überspringen Sie diesmal die Schritte 1 bis 4 und wechseln Sie direkt zu Ihrem Ordner "Programme / Dienstprogramme" und öffnen Sie die App "Systeminformationen" (oder "System") Profiler App) direkt von dort aus. Befolgen Sie nach dem Öffnen die obigen Schritte 5 bis 8.

Monomeeth
quelle
1
Ich erhalte immer wieder eine Zeitüberschreitung mit der Meldung "Das Plug-in hat beim Sammeln dieser Informationen nicht schnell genug reagiert."
JBis
Danke @Josh, dass du mich an diese Antwort erinnert hast. Ich habe Ende letzten Jahres bemerkt, dass dies ein mögliches Problem ist, habe aber vergessen, dass ich diese Frage beantwortet habe! 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.
Monomeeth
Gleiches Problem beim Öffnen direkt aus / Programme / Dienstprogramme.
JBist der
27

Im Finder klicken cmdF, um ein Suchfenster zu erhalten.

  • Wählen Sie "Suche: Dieser Mac"
  • Treffen Sie das erste Suchkriterium und wählen Sie " Other ... " und hier " Executable Architectures " " Is " " i386 "
  • Drücken Sie die + Taste und fügen Sie ein zweites Kriterium hinzu " Ausführbare Architekturen " " Ist nicht " " x86_64 "

    Bildbeschreibung hier eingeben

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


Im Terminal geschieht dies mit:

mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"
klanomath
quelle
Seltsamerweise greift diese Methode einige PDF-Dateien von vor Jahren auf, wie "Welcome to Leopard". Ansonsten scheint alles gut zu funktionieren.
Thunderforge
3
@Thunderforge "Welcome to Leopard" ist keine PDF-Datei, sondern eine App IIRC. Wenn Sie sie öffnen, wird die PDF-Datei in Ihrer Sprache ausgewählt und in der Vorschau geöffnet.
Manuel
@ Manuel Interessant! Ich war über die Tatsache, dass es ein PDF-Symbol hat, überrascht. Mir ist nicht einmal aufgefallen, dass es sich tatsächlich um eine App handelt, die ein PDF für Sie ausgewählt hat.
Thunderforge
Mir ist gerade aufgefallen, dass diese Methode keine Apps ~/Library/Application Supportwie Steam-Spiele findet. Die andere Lösung tut es. Wissen Sie, ob es eine Möglichkeit gibt, die Suche dahingehend zu ändern?
Thunderforge
1
@Thunderforge Die Terminalversion findet Steam-Spiele.
Andrea Lazzarotto
3

Soweit ich weiß, werden die anderen Antworten 32-Bit-MacOS-Apps (und möglicherweise einige 32-Bit-Binärdateien) im Metadatenindex aufgeführt. Wenn Sie jede ausführbare 32-Bit-Binärdatei auf Ihrem System auflisten möchten, probieren Sie diese Zeile aus:

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 darin, die Einschränkungen der in macOS enthaltenen BSD-Findutils zu überwinden.

Kevin Mark
quelle
3

Dieser einzeilige Terminalbefehl sammelt eine Liste von Apps in einer Textdatei auf Ihrem Desktop. Die 6 Zeilen vor und 2 Zeilen nach jedem Auftreten von "(Intel): Nein" in der Abfrage werden erfasst. Es wird jedoch nicht in die 32-Bit-unterstützenden Binärdateien oder Bibliotheken für bereits kompilierte 64-Bit-Apps eingegriffen. Diese Liste ist viel umfangreicher und ich kann keine Ressource finden, die ein tieferes Problem betrifft, wenn es überhaupt ein Problem ist.

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

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

file myapplication

Zum Beispiel mein Ray Tracer rt:

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

Der fileBefehl untersucht grundsätzlich viele Arten von Dateien und versucht, diese zu identifizieren. Bei ausführbaren OSX-Dateien sehen Sie fast immer eine oder mehrere von diesen: i386, x86_64 und ppc, bei denen es sich um 32-Bit-Intel / AMD-Architekturen, 64-Bit-Intel / AMD-Architekturen und Power-PC-Architekturen handelt (diese sind veraltet) Jetzt.) Sie müssen sich also wirklich nur mit i386 (32-Bit-Anwendungen) und x86_64 (64-Bit-Anwendungen) befassen.

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

Fyngyrz
quelle
1
Denn file /Applications/BitTorrent.app/Contents/MacOS/BitTorrentich verstehe Mach-O executable i386. Was bedeutet das ?
15.
Dies bedeutet, dass die Anwendung eine ausführbare 32-Bit-Datei ist. und die Implikation ist, dass es unter den neuesten 64-Bit-Betriebssystemen von Apple nicht lauffähig sein wird.
Fyngyrz
Ich konnte die Tabelle nicht finden, in der ich Bedeutungen von Dingen wie i386usw. finden konnte. Können Sie bitte einen solchen Verweis hinzufügen?
16.
Der fileBefehl untersucht grundsätzlich viele Arten von Dateien und versucht, diese zu identifizieren. Für OSX ausführbare Dateien, werden Sie fast immer eine oder mehrere von diesen sehen: i386, x86_64und ppcdie jeweils 32-Bit - Intel / AMD - Architekturen, 64-Bit - Intel / AMD - Architekturen und Power - PC - Architekturen (letztere sind jetzt ziemlich alt. ) Sie müssen sich also wirklich nur mit i386 (32-Bit-Anwendungen) und x86_64 (64-Bit-Anwendungen) befassen. Der einzige Grund dafür ist, dass Apple die Unterstützung für 32-Bit-Anwendungen einstellt.
Fyngyrz
1

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 stellte sich heraus, dass es ein Befehlszeilentool system_profilergibt, das dieselben Informationen enthält.

Also ging ich direkt zum Quellcode und schrieb ein kleines Ruby-Skript, um eine Liste mit weiteren Informationen zum Speicherort der Anwendung und zur Installationsquelle (sofern verfügbar) zu erstellen.

Das Skript finden Sie hier .

Vidur
quelle