TL; DR
Básicamente, es un error o una corrección de errores introducida en macOS 10.13 High Sierra: Spotlight ahora respeta la configuración del Finder para mostrar las extensiones de archivo. Deshabilitar esa configuración elimina la extensión .app de Spotlight.
Respuesta completa
Sé que esta es una pregunta muy antigua, pero acabo de tener un déjà-vu en 10.13 High Sierra; diferente a este pero con algunas similitudes, así que lo busqué y me topé con esta pregunta y aquí está mi respuesta:
Las aplicaciones son, de hecho, directorios que se muestran como si fueran un solo archivo; Apple llama a un paquete (a pesar de que el Finder lo denomina " Paquete " como en " Mostrar contenido del paquete " en el menú contextual). No solo las aplicaciones son paquetes, Apple usa paquetes también para marcos, complementos, extensiones de aplicaciones, servicios XPI, cierto tipo de paquetes de instalación, así como el formato de almacenamiento de datos si los datos almacenados consisten en múltiples archivos, pero aparecerán como un solo archivo (por ejemplo, un documento RTF con imágenes puede almacenarse como un paquete RTFD). Los paquetes siempre tienen un nombre real, el nombre de la entrada de archivo en el disco. Entonces, si no hay nada más que mostrar, macOS muestra ese nombre en todas partes.
Sin embargo, los paquetes tienen un archivo de información en su interior, denominado Info.plist
, que contiene todo tipo de metadatos sobre el paquete. Una cosa que este archivo de información puede definir es un Nombre de visualización . Si se establece dicho nombre para mostrar, Finder mostrará el nombre para mostrar y no el nombre real del directorio. Es decir, a menos que se haya cambiado el nombre del directorio, que el Finder puede detectar si el nombre del directorio no coincide con el nombre del paquete en el archivo Info.plist
. Bueno, lo admito, es un poco complicado. Probémoslo con un ejemplo:
- El directorio se llama
My App.app
- El nombre del paquete en
Info.plist
es My App
- El nombre para mostrar del paquete en
Info.plist
es My Cool App
Con esa combinación, Finder mostrará la aplicación como My Cool App.app
(o solo My Cool App
si las extensiones están ocultas). Siempre que (1) y (2) coincidan en nombre, se muestra (3).
Si ahora cambio el nombre del directorio a My Boring App.app
, entonces Finder lo mostrará como My Boring App.app
, ya que tan pronto si (1) y (2) no coinciden con el nombre, se muestra (1), como si el el usuario quiere que se cambie el nombre de su aplicación, por supuesto, Finder debería mostrar el nombre elegido por el usuario, tiene sentido, ¿no?
¿Ya es lo suficientemente complicado? Bueno, lo siento, pero ahora se complica aún más. Todos los valores en Info.plist
que se muestran a los usuarios pueden ser localizados , por lo que si su sistema está configurado en inglés de EE. UU., El nombre del paquete puede ser My Cool App
, pero si el sistema está configurado en inglés británico, puede ser My Amazing App
. Si existe una localización para el idioma del sistema actual, Finder mostrará esa localización, pero nuevamente, solo si los nombres de (1) y (2) coinciden, de lo contrario (1) volverá a ganar.
La localización se realiza colocando los archivos .strings
en paquetes en subdirectorios llamados <x>.lproj
, donde <x>
solo puede ser un código de idioma, por ejemplo. en.lproj
para inglés, fr.lproj
para francés, etc. Pero también puede ser idioma + país, como en_US.lproj
, en_GB.lproj
, en_AU.lproj
, etc. Dentro hay un archivo llamado InfoPlist.strings
y este archivo puede anular los valores básicos del archivo Info.plist
. Si no se encuentra una localización que coincida, se utilizan los valores de localización básica (denominada región de desarrollo ), que también está definida por el archivo Info.plist
. Si no se define dicha localización, los valores del Info.plist
se usan directamente.
Spotlight se comporta como Finder, si se muestra (1) y (2) coincidencia en el nombre (3), ya sea directamente o desde la localización correspondiente. Si no se establece (3), se muestra (1). Pero a diferencia del Finder, no siempre agrega la extensión .app
, incluso si se solicita en las preferencias del Finder. Nunca pude encontrar el patrón de comportamiento exacto, pero una cierta combinación de configuración evitará que Spotlight muestre la extensión, independientemente de lo que haya configurado. Para algunos usuarios, se corrige cambiando la configuración del Finder y luego ejecutando sudo mdutil -E /
en Terminal
(que vuelve a indexar todo). Pero no funciona para todos los usuarios, lo que puede tener algo que ver con el idioma / región elegido.
Básicamente es un error. O bien la re-indexación lo arregla o no se puede arreglar. Y Apple modificó el comportamiento en algún lanzamiento de macOS y se mantuvo constante a partir de entonces ... es decir, hasta 10.13 High Sierra. De repente, todas mis aplicaciones tienen la extensión .app
en Spotlight, que coincide con la configuración de mi Finder, mientras que en 10.12 Sierra ninguna aplicación tenía una extensión en Spotlight, a pesar de la configuración del Finder, a menos que haya cambiado el nombre o haya varias copias por ahí.