TL; DR
Basicamente, é uma falha introduzida no macOS 10.13 High Sierra: o Spotlight agora respeita a configuração do Finder para mostrar extensões de arquivo. Desativar essa configuração remove a extensão .app do Spotlight.
Resposta completa
Sei que essa é uma pergunta muito antiga, mas acabei de ter um déjà-vu em 10.13 High Sierra; diferente deste, mas com algumas semelhanças, então eu o procurei e me deparei com esta pergunta e aqui está a minha resposta:
Os aplicativos são de fato diretórios exibidos como se fossem um único arquivo; A Apple chama isso de pacote (apesar do Finder dar o nome de " Pacote " como em " Mostrar conteúdo do pacote " no menu de contexto). Não apenas aplicativos são pacotes configuráveis, a Apple também usa pacotes para estruturas, plug-ins, extensões de aplicativos, serviços XPI, certos tipos de pacotes de instalação, bem como formato de armazenamento de dados, se os dados armazenados consistirem em vários arquivos, mas aparecerão como apenas um arquivo (por exemplo, um documento RTF com fotos pode ser armazenado como um pacote RTFD). Os pacotes sempre têm um nome real, o nome da entrada do arquivo no disco. Portanto, se não houver mais nada para exibir, o macOS exibirá esse nome em todos os lugares.
No entanto, os pacotes configuráveis têm um arquivo de informações, nomeado Info.plist
, que contém todos os tipos de metadados sobre o pacote configurável. Uma coisa que esse arquivo de informações pode definir é um Nome para Exibição . Se esse nome de exibição estiver definido, o Finder exibirá o nome de exibição e não o nome real do diretório. Ou seja, a menos que o diretório tenha sido renomeado, o Finder poderá detectar se o nome do diretório não corresponde ao nome do pacote configurável no Info.plist
arquivo. Bem, admito, é um pouco complicado. Vamos tentar com um exemplo:
- O diretório é nomeado
My App.app
- O nome do conjunto de
Info.plist
éMy App
- O nome de exibição do bundle nos
Info.plist
éMy Cool App
Com essa combinação, o Finder mostrará o aplicativo como My Cool App.app
(ou apenas My Cool App
se as extensões estiverem ocultas). Enquanto (1) e (2) corresponderem ao nome, (3) será exibido.
Se agora eu renomear o diretório para My Boring App.app
, o Finder o exibirá como My Boring App.app
se (1) e (2) não corresponderem ao nome, (1) for exibido, como se o usuário quisesse que seu aplicativo fosse renomeado, de claro, o Finder deve exibir o nome escolhido pelo usuário, faz sentido, não é?
Já complicado o suficiente? Sinto muito, mas fica ainda mais complicado agora. Todos os valores Info.plist
exibidos para os usuários podem ser localizados ; portanto, se o sistema estiver definido como inglês dos EUA, o nome de exibição do pacote configurável poderá ser My Cool App
, mas, se o sistema estiver definido como inglês do Reino Unido, poderá ser My Amazing App
. Se existir uma localização para o idioma atual do sistema, o Finder exibirá essa localização, mas novamente, apenas se os nomes de (1) e (2) corresponderem, caso contrário (1) vencerá novamente.
Localizando é feito colocando .strings
arquivos em feixes em sub-diretórios que são nomeados <x>.lproj
, onde <x>
pode ser apenas um código de idioma, por exemplo, en.lproj
para Inglês, fr.lproj
para Francês, etc. Mas no também pode ser linguagem + país, como en_US.lproj
, en_GB.lproj
, en_AU.lproj
e assim por diante. Dentro há um arquivo nomeado InfoPlist.strings
e esse arquivo pode substituir os valores base do Info.plist
arquivo. Se nenhuma localização correspondente for encontrada, os valores da localização base serão usados (denominada região de desenvolvimento ), que também é definida pelo Info.plist
arquivo. Se nenhuma localização for definida, os valores de Info.plist
serão usados diretamente.
O Spotlight se comporta como o Finder, se (1) e (2) a correspondência no nome (3) for exibida, diretamente ou a partir da localização correspondente. Se (3) não estiver definido, (1) será exibido. Mas, diferentemente do Finder, ele nem sempre adiciona a .app
extensão, mesmo se solicitado nas preferências do Finder. Eu nunca consegui encontrar o padrão de comportamento exato, mas uma certa combinação de configuração impedirá o Spotlight de mostrar a extensão, independentemente do que você configurou. Para alguns usuários é fixo alterando a configuração do Finder e, em seguida, correr sudo mdutil -E /
em Terminal
(que re-índices tudo). Mas não está funcionando para todos os usuários, o que pode ter algo a ver com o idioma / região escolhido.
Basicamente, é um bug. A reindexação corrige ou não pode ser corrigido. E o comportamento foi alterado pela Apple em algum lançamento do macOS e permaneceu constante a partir de então ... ou seja, até 10.13 High Sierra. De repente, todos os meus aplicativos têm .app
extensão no Spotlight, que corresponde à minha configuração do Finder, enquanto na versão 10.12 do Sierra nenhum aplicativo tinha uma extensão no Spotlight, apesar da configuração do Finder, a menos que eu o renomeie ou que tenha várias cópias.