TL; DR
Grundsätzlich handelt es sich um einen Fehler oder eine Fehlerbehebung, die in macOS 10.13 High Sierra eingeführt wurde: Spotlight berücksichtigt jetzt die Finder-Einstellung, um Dateierweiterungen anzuzeigen. Durch Deaktivieren dieser Einstellung wird die Erweiterung .app aus Spotlight entfernt.
Antwort in voller Länge
Ich weiß, dass dies eine sehr alte Frage ist, aber ich hatte gerade ein Déjà-vu in 10.13 High Sierra; anders als dieses, aber mit einigen Ähnlichkeiten, also habe ich danach gesucht und bin auf diese Frage gestoßen, und hier ist meine Antwort:
Apps sind Verzeichnisse, die so angezeigt werden, als wären sie eine einzelne Datei. Apple nennt das ein Bundle (obwohl der Finder es " Paket " nennt, wie unter " Paketinhalt anzeigen " im Kontextmenü). Nicht nur Anwendungen sind Bundles, Apple verwendet Bundles auch für Frameworks, Plugins, Anwendungserweiterungen, XPI-Dienste, bestimmte Arten von Installationspaketen sowie das Datenspeicherformat, wenn gespeicherte Daten aus mehreren Dateien bestehen, aber nur als eine Datei angezeigt werden sollen (z Ein RTF-Dokument mit Bildern kann als RTFD-Paket gespeichert werden. Bundles haben immer einen echten Namen, den Namen des Dateieintrags auf der Festplatte. Wenn also nichts anderes angezeigt werden soll, zeigt macOS diesen Namen überall an.
In Bundles befindet sich jedoch eine Info-Datei mit dem Namen Info.plist
, die alle Arten von Metadaten zum Bundle enthält. Eine solche Infodatei kann einen Anzeigenamen definieren . Wenn ein solcher Anzeigename festgelegt ist, zeigt der Finder den Anzeigenamen und nicht den tatsächlichen Namen des Verzeichnisses an. Das heißt, es sei denn, das Verzeichnis wurde umbenannt, was der Finder erkennen kann, wenn der Verzeichnisname nicht mit dem Bundle-Namen in der Info.plist
Datei übereinstimmt . Nun, ich gebe zu, es ist ein bisschen kompliziert. Versuchen wir es mit einem Beispiel:
- Das Verzeichnis heißt
My App.app
- Der Bundle-Name in
Info.plist
istMy App
- Der Anzeigename des Bundles in
Info.plist
lautetMy Cool App
Mit dieser Kombination zeigt Finder die App als My Cool App.app
(oder nur, My Cool App
wenn Erweiterungen ausgeblendet sind). Solange (1) und (2) im Namen übereinstimmen, wird (3) angezeigt.
Wenn ich das Verzeichnis jetzt umbenenne My Boring App.app
, zeigt Finder es an, My Boring App.app
sobald (1) und (2) im Namen nicht übereinstimmen, (1) angezeigt wird, als ob der Benutzer seine App umbenennen möchte, von Natürlich sollte der Finder den vom Benutzer gewählten Namen anzeigen, macht Sinn, nicht wahr?
Schon kompliziert genug? Nun, es tut mir leid, aber jetzt wird es noch komplizierter. Alle Werte in den Info.plist
, die Benutzern angezeigt werden, können lokalisiert werden. Wenn Ihr System also auf US-Englisch eingestellt ist, lautet der Anzeigename des Bundles möglicherweise My Cool App
, wenn das System jedoch auf UK-Englisch eingestellt ist, kann dies der Fall sein My Amazing App
. Wenn für die aktuelle Systemsprache eine Lokalisierung vorhanden ist, zeigt der Finder diese Lokalisierung an, jedoch nur dann, wenn die Namen von (1) und (2) übereinstimmen, andernfalls gewinnt (1) erneut.
Localizing wird , indem getan .strings
Dateien in Bündel in Unterverzeichnissen , die genannt werden <x>.lproj
, in denen <x>
nur ein Sprachcode sein kann, zB en.lproj
für Englisch, fr.lproj
für Französisch, etc. Aber in kann auch Sprache + Land, wie sein en_US.lproj
, en_GB.lproj
, en_AU.lproj
, und so weiter. Darin befindet sich eine Datei mit dem Namen InfoPlist.strings
und diese Datei kann die Basiswerte der Info.plist
Datei überschreiben . Wird keine übereinstimmende Lokalisierung gefunden, werden die Werte aus der Basislokalisierung verwendet (benannte Entwicklungsregion ), die auch von der Info.plist
Datei definiert wird . Wenn keine solche Lokalisierung definiert ist, werden die Werte aus Info.plist
direkt verwendet.
Spotlight verhält sich wie Finder, wenn (1) und (2) übereinstimmende Namen (3) entweder direkt oder über die übereinstimmende Lokalisierung angezeigt werden. Wenn (3) nicht eingestellt ist, wird (1) angezeigt. Im Gegensatz zu Finder wird die .app
Erweiterung jedoch nicht immer hinzugefügt , selbst wenn dies in den Finder-Einstellungen angefordert wird. Ich konnte nie das genaue Verhaltensmuster finden, aber eine bestimmte Kombination von Einstellungen verhindert, dass Spotlight die Erweiterung anzeigt, unabhängig davon, was Sie konfiguriert haben. Für einige Benutzer ist es durch Ändern der Einstellung Finder fixiert und dann läuft sudo mdutil -E /
in Terminal
(die Wieder Indizes alles). Es funktioniert jedoch nicht für alle Benutzer, was möglicherweise mit der ausgewählten Sprache / Region zu tun hat.
Im Grunde ist es ein Fehler. Durch erneutes Indizieren wird das Problem behoben oder es kann nicht behoben werden. Und das Verhalten wurde von Apple bei einigen MacOS-Versionen geändert und blieb danach konstant ... das heißt, bis 10.13 High Sierra. Plötzlich haben alle meine Apps eine .app
Erweiterung in Spotlight, die meiner Finder-Einstellung entspricht, während in 10.12 Sierra trotz der Finder-Einstellung keine App eine Erweiterung in Spotlight hatte, es sei denn, ich habe sie umbenannt oder ich hatte mehrere Kopien herumliegen.