Perché alcuni risultati di spotlight di app mostrano l'estensione ".app", ma non tutti?

9

Anche se ho impostato esplicitamente la preferenza del Finder per visualizzare tutte le estensioni di file, sto ancora scoprendo che alcune app non mostrano l'estensione del nome del file nel loro risultato Spotlight.

Eccoalcuniesempi.

GestiscoMountainLion.




    
posta Redandwhite 23.09.2012 - 13:45
fonte

2 risposte

7

TL; DR

Fondamentalmente, è una correzione di bug o bug introdotta in macOS 10.13 High Sierra: Spotlight ora rispetta l'impostazione del Finder per mostrare le estensioni dei file. Disabilitando questa impostazione rimuovi l'estensione .app da Spotlight.

Risposta a lunghezza intera

So che questa è una domanda molto vecchia, ma ho appena avuto un déjà-vu in 10.13 High Sierra; diverso da questo ma con alcune somiglianze, così ho cercato e incappato in questa domanda ed ecco la mia risposta:

Le app sono in effetti delle directory visualizzate come se fossero un singolo file; Apple chiama un pacchetto (nonostante il Finder lo abbia nominato " Pacchetto " come in " Mostra contenuto pacchetto " nel menu di scelta rapida). Non solo le applicazioni sono bundle, Apple utilizza bundle anche per framework, plug-in, estensioni applicative, servizi XPI, alcuni tipi di pacchetti di installazione e formato di archiviazione dei dati se i dati memorizzati sono costituiti da più file ma devono apparire come un solo file (es. un documento RTF con immagini può essere memorizzato come pacchetto RTFD). I pacchetti hanno sempre un nome reale, il nome della voce del file sul disco. Quindi se non c'è nient'altro da mostrare, macOS mostra quel nome ovunque.

Tuttavia, i pacchetti hanno all'interno un file di informazioni, denominato Info.plist , che contiene tutti i tipi di metadati relativi al pacchetto. Una cosa che un tale file di informazioni può definire è un Nome visualizzato . Se viene impostato un nome visualizzato, Finder mostrerà il nome visualizzato e non il vero nome della directory. Cioè, a meno che la directory non sia stata rinominata, che il Finder può rilevare se il nome della directory non corrisponde al nome del bundle nel file Info.plist . Beh, lo ammetto, è un po 'complicato. Proviamo con un esempio:

  1. La directory è denominata My App.app
  2. Il nome del gruppo in Info.plist è My App
  3. Il nome visualizzato del pacchetto in Info.plist è My Cool App

Con questa combinazione, Finder mostrerà l'app come My Cool App.app (o solo My Cool App se le estensioni sono nascoste). Finché (1) e (2) corrispondono nel nome, viene visualizzato (3).

Se ora rinominare la directory in My Boring App.app , Finder la visualizzerà come My Boring App.app poiché se (1) e (2) non corrispondono nel nome, viene visualizzato (1), come se il l'utente vuole che la sua app venga rinominata, ovviamente, Finder dovrebbe visualizzare il nome scelto dall'utente, ha senso, non è vero?

Già abbastanza complicato? Beh, mi dispiace, ma ora diventa ancora più complicato. Tutti i valori nella Info.plist visualizzati agli utenti possono essere localizzati , quindi se il tuo sistema è impostato sull'inglese americano, il nome visualizzato del pacchetto potrebbe essere My Cool App , ma se il sistema è impostato sull'inglese del Regno Unito, può essere My Amazing App . Se esiste una localizzazione per la lingua corrente del sistema, Finder mostrerà tale localizzazione, ma ancora una volta, solo se i nomi di (1) e (2) corrispondono, altrimenti (1) vincerà di nuovo.

La localizzazione viene effettuata posizionando i file .strings in gruppi in sottodirectory denominate <x>.lproj , dove <x> può essere solo un codice lingua, ad es. en.lproj per l'inglese, fr.lproj per il francese, ecc. Ma può anche essere lingua + paese, come en_US.lproj , en_GB.lproj , en_AU.lproj e così via. All'interno è presente un file denominato InfoPlist.strings e questo file può sovrascrivere i valori di base del file Info.plist . Se non viene trovata alcuna localizzazione corrispondente, vengono utilizzati i valori della localizzazione di base (denominati area di sviluppo ), che è anche definita dal file Info.plist . Se non viene definita alcuna localizzazione, i valori di Info.plist vengono utilizzati direttamente.

Spotlight si comporta come Finder, se viene visualizzata la corrispondenza (1) e (2) nel nome (3), direttamente o dalla localizzazione corrispondente. Se (3) non è impostato, viene visualizzato (1). Ma a differenza di Finder, non aggiunge sempre l'estensione .app , anche se richiesta nelle preferenze del Finder. Non sono riuscito a trovare il modello di comportamento esatto, ma una certa combinazione di impostazioni impedirà a Spotlight di mostrare l'estensione, indipendentemente da ciò che è stato configurato. Per alcuni utenti viene corretto cambiando le impostazioni del Finder e quindi eseguendo sudo mdutil -E / in Terminal (che reindicizza tutto). Ma non funziona per tutti gli utenti, che potrebbero avere qualcosa a che fare con la lingua / regione scelta.

Fondamentalmente è un bug. O re-indicizzazione lo corregge o non può essere riparato. E il comportamento è stato cambiato da Apple in alcune versioni di macOS ed è rimasto costante da allora in poi ... cioè fino a 10.13 High Sierra. All'improvviso tutte le mie app hanno estensione .app in Spotlight, che corrisponde alla mia impostazione Finder, mentre in 10.12 Sierra nessuna app aveva un'estensione in Spotlight, nonostante le impostazioni del Finder, a meno che non l'avessi rinominato o se non avessi più copie di in giro.

    
risposta data 06.10.2017 - 20:22
fonte
1

Sembra che ciò accada quando Spotlight indicizza le app prima che fosse attiva l'impostazione per nascondere le estensioni. Dovresti provare a reindicizzare le applicazioni per risolvere questo problema.

Vai alla scheda Privacy nelle preferenze di Spotlight e aggiungi la directory Applicazioni alle posizioni escluse. Questo dovrebbe rimuovere tutte le applicazioni dall'indice di Spotlight. Quindi rimuoverlo nuovamente dalle posizioni escluse, quindi Spotlight reindicherà le applicazioni con le impostazioni corrette. Dopo aver reindicizzato, l'estensione ".app" deve essere rimossa da tutti i risultati.

    
risposta data 05.10.2012 - 16:58
fonte

Leggi altre domande sui tag