TL; DR
Fondamentalement, il s'agit d'un bogue ou d'une correction de bogue introduit dans macOS 10.13 High Sierra: Spotlight respecte désormais le paramètre du Finder pour afficher les extensions de fichier. La désactivation de ce paramètre supprime l'extension .app de Spotlight.
Réponse complète
Je sais que c'est une très vieille question, mais je viens d'avoir un déjà-vu dans 10.13 High Sierra; différent de celui-ci mais avec quelques similitudes, donc je l'ai cherché et suis tombé sur cette question et voici ma réponse:
Les applications sont en fait des répertoires affichés comme s'il s'agissait d'un seul fichier; Apple appelle cela un bundle (malgré que le Finder le nomme " Package " comme dans " Afficher le contenu du package " dans le menu contextuel). Les applications ne sont pas uniquement des bundles, Apple utilise également des bundles pour les frameworks, plugins, extensions d'application, services XPI, certains types de packages d'installation, ainsi que le format de stockage des données si les données stockées sont constituées de plusieurs fichiers mais doivent apparaître comme un seul fichier (par exemple un document RTF avec des images peut être stocké sous forme de bundle RTFD). Les bundles ont toujours un vrai nom, le nom de l'entrée de fichier sur le disque. Donc, s'il n'y a rien d'autre à afficher, macOS affiche ce nom partout.
Cependant, les bundles ont un fichier d'informations à l'intérieur, nommé Info.plist
, qui contient toutes sortes de métadonnées sur le bundle. Une chose qu'un tel fichier d'informations peut définir est un nom d'affichage . Si un tel nom d'affichage est défini, le Finder affichera le nom d'affichage et non le vrai nom du répertoire. Autrement dit, sauf si le répertoire a été renommé, ce que le Finder peut détecter si le nom du répertoire ne correspond pas au nom de l' ensemble dans le Info.plist
fichier. Bon, j'avoue, c'est un peu compliqué. Essayons-le avec un exemple:
- Le répertoire est nommé
My App.app
- Le nom de l' ensemble en
Info.plist
est -My App
- Le nom d'affichage du faisceau en
Info.plist
est -My Cool App
Avec cette combinaison, le Finder affichera l'application en tant que My Cool App.app
(ou juste My Cool App
si les extensions sont masquées). Tant que (1) et (2) correspondent au nom, (3) s'affiche.
Si je renomme maintenant le répertoire My Boring App.app
, alors le Finder l'affichera comme My Boring App.app
si dès que (1) et (2) ne correspondent pas au nom, (1) s'affiche, comme si l'utilisateur veut renommer son application, de Bien sûr, le Finder devrait afficher le nom choisi par l'utilisateur, est logique, n'est-ce pas?
Déjà assez compliqué? Eh bien, je suis désolé, mais ça devient encore plus compliqué maintenant. Toutes les valeurs Info.plist
affichées dans les utilisateurs peuvent être localisées , donc si votre système est défini sur l'anglais américain, le nom d'affichage du bundle peut être My Cool App
, mais si le système est défini sur l'anglais britannique, il peut l'être My Amazing App
. S'il existe une localisation pour la langue système actuelle, le Finder affichera cette localisation, mais encore une fois, uniquement si les noms de (1) et (2) correspondent, sinon (1) gagnera à nouveau.
Localisant se fait en plaçant des .strings
fichiers en paquets dans les sous-répertoires qui sont nommés <x>.lproj
, où <x>
peut juste être un code de langue, par exemple en.lproj
pour l' anglais, fr.lproj
pour le français, etc. Mais peut aussi être la langue + pays, comme en_US.lproj
, en_GB.lproj
, en_AU.lproj
et ainsi de suite. À l'intérieur se trouve un fichier nommé InfoPlist.strings
et ce fichier peut remplacer les valeurs de base du Info.plist
fichier. Si aucune localisation correspondante n'est trouvée, les valeurs de la localisation de base sont utilisées ( région de développement nommée ) qui est également définie par le Info.plist
fichier. Si aucune localisation de ce type n'est définie, les valeurs de la Info.plist
sont directement utilisées.
Spotlight se comporte comme le Finder, si (1) et (2) correspondent dans le nom (3) est affiché, soit directement, soit à partir de la localisation correspondante. Si (3) n'est pas défini, (1) s'affiche. Mais contrairement au Finder, il n'ajoute pas toujours l' .app
extension, même si cela est demandé dans les préférences du Finder. Je n'ai jamais pu trouver le modèle de comportement exact, mais une certaine combinaison de configuration empêchera Spotlight d'afficher l'extension, indépendamment de ce que vous avez configuré. Pour certains utilisateurs , il est fixé en changeant le paramètre Finder et en cours d' exécution puis sudo mdutil -E /
dans Terminal
(où tout réindexe). Mais cela ne fonctionne pas pour tous les utilisateurs, ce qui peut avoir quelque chose à voir avec la langue / région choisie.
Fondamentalement, c'est un bug. Soit la réindexation le corrige, soit elle ne peut pas être corrigée. Et le comportement a été modifié par Apple lors de certaines versions de macOS et est resté constant par la suite ... c'est-à-dire jusqu'à 10.13 High Sierra. Tout d'un coup, toutes mes applications ont une .app
extension dans Spotlight, qui correspond à mon paramètre Finder, alors que dans 10.12 Sierra aucune application n'avait une extension dans Spotlight, malgré le paramètre Finder, à moins que je ne l'ait renommé ou que j'aie plusieurs copies de traîner.