Mimo że wyraźnie ustawiłem preferencję Findera, aby wyświetlać wszystkie rozszerzenia plików, wciąż stwierdzam, że niektóre aplikacje nie wyświetlają rozszerzenia nazwy pliku w wyniku Spotlight.
Oto kilka przykładów.
Prowadzę Mountain Lion.
Mimo że wyraźnie ustawiłem preferencję Findera, aby wyświetlać wszystkie rozszerzenia plików, wciąż stwierdzam, że niektóre aplikacje nie wyświetlają rozszerzenia nazwy pliku w wyniku Spotlight.
Oto kilka przykładów.
Prowadzę Mountain Lion.
Odpowiedzi:
Zasadniczo jest to błąd wprowadzony w systemie macOS 10.13 High Sierra: Spotlight uwzględnia teraz ustawienie Findera, aby wyświetlać rozszerzenia plików. Wyłączenie tego ustawienia usuwa rozszerzenie .app z Spotlight.
Wiem, że to bardzo stare pytanie, ale właśnie miałem déjà-vu w 10.13 High Sierra; różni się od tego, ale ma pewne podobieństwa, więc szukałem go i natknąłem się na to pytanie, a oto moja odpowiedź:
Aplikacje są w rzeczywistości katalogami wyświetlanymi tak, jakby były pojedynczym plikiem; Apple nazywa ten pakiet (pomimo tego, że Finder nazwał go „ Pakiet ” jak w „ Pokaż zawartość pakietu ” w menu kontekstowym). Nie tylko aplikacje są pakietami, Apple używa pakietów również do frameworków, wtyczek, rozszerzeń aplikacji, usług XPI, pewnego rodzaju pakietów instalacyjnych, a także formatu przechowywania danych, jeśli przechowywane dane składają się z wielu plików, ale powinny pojawiać się jako jeden plik (np. dokument RTF ze zdjęciami może być przechowywany jako pakiet RTFD). Pakiety zawsze mają prawdziwą nazwę, nazwę wpisu pliku na dysku. Jeśli więc nie ma nic do wyświetlenia, macOS wyświetla tę nazwę wszędzie.
Jednak Info.plist
w pakiecie znajduje się plik informacyjny o nazwie , który zawiera wszelkiego rodzaju metadane dotyczące pakietu. Jedną rzeczą, którą taki plik informacji może zdefiniować, jest Nazwa wyświetlana . Jeśli ustawiono taką nazwę wyświetlaną, Finder wyświetli nazwę wyświetlaną, a nie prawdziwą nazwę katalogu. To znaczy, chyba że nazwa katalogu zostanie zmieniona, co Finder może wykryć, jeśli nazwa katalogu nie pasuje do nazwy pakietu w Info.plist
pliku. Przyznaję, to trochę skomplikowane. Spróbujmy na przykładzie:
My App.app
Info.plist
toMy App
Info.plist
IsMy Cool App
Dzięki tej kombinacji Finder wyświetli aplikację jako My Cool App.app
(lub po prostu, My Cool App
jeśli rozszerzenia są ukryte). Dopóki (1) i (2) są zgodne w nazwie, wyświetla się (3).
Jeśli teraz zmienię nazwę katalogu na My Boring App.app
, to Finder wyświetli go, gdy My Boring App.app
tylko (1) i (2) nie będą pasować do nazwy, wyświetli się (1), tak jakby użytkownik chciał zmienić nazwę swojej aplikacji, z Oczywiście Finder powinien wyświetlać nazwę wybraną przez użytkownika, ma to sens, prawda?
Już wystarczająco skomplikowane? Przykro mi, ale teraz staje się jeszcze bardziej skomplikowane. Wszystkie wartości Info.plist
wyświetlane użytkownikom mogą być zlokalizowane , więc jeśli twój system jest ustawiony na angielski w USA, wyświetlana nazwa pakietu może być My Cool App
, ale jeśli system jest ustawiony na angielski w Wielkiej Brytanii, może być My Amazing App
. Jeśli istnieje lokalizacja dla bieżącego języka systemu, Finder wyświetli tę lokalizację, ale ponownie, tylko jeśli nazwy (1) i (2) pasują, w przeciwnym razie (1) ponownie wygra.
Lokalizowanie odbywa się poprzez umieszczenie .strings
plików w wiązkach język podkatalogów, które są nazwane <x>.lproj
, gdzie <x>
może być tylko kod języka, na przykład en.lproj
dla języka angielskiego, fr.lproj
dla francuskich itp Ale może być też język + kraj, jak en_US.lproj
, en_GB.lproj
, en_AU.lproj
i tak dalej. Wewnątrz znajduje się plik o nazwie, InfoPlist.strings
który może zastąpić podstawowe wartości tego Info.plist
pliku. Jeśli nie znaleziono pasującej lokalizacji, używane są wartości z lokalizacji podstawowej (nazwany region programistyczny ), który jest również zdefiniowany w Info.plist
pliku. Jeśli nie zdefiniowano takiej lokalizacji, wartości z Info.plist
są używane bezpośrednio.
Spotlight zachowuje się jak Finder, jeśli w nazwie (3) wyświetlane jest dopasowanie (1) i (2), bezpośrednio lub z pasującej lokalizacji. Jeśli (3) nie jest ustawione, wyświetla się (1). Ale w przeciwieństwie do Findera nie zawsze dodaje .app
rozszerzenie, nawet jeśli jest wymagane w preferencjach Findera. Nigdy nie byłem w stanie znaleźć dokładnego wzorca zachowania, ale pewna kombinacja ustawień uniemożliwi Spotlight pokazywanie rozszerzenia, niezależnie od tego, co skonfigurowałeś. Dla niektórych użytkowników jest to ustalone przez zmianę ustawienia Finder, a następnie działa sudo mdutil -E /
w Terminal
(który został ponownie spis wszystkiego). Ale to nie działa dla wszystkich użytkowników, co może mieć coś wspólnego z wybranym językiem / regionem.
Zasadniczo jest to błąd. Ponowne indeksowanie to naprawia lub nie można tego naprawić. A zachowanie zostało zmienione przez Apple w niektórych wydaniach macOS i pozostało stałe później ... to znaczy do 10.13 High Sierra. Nagle wszystkie moje aplikacje mają .app
rozszerzenie w Spotlight, które pasuje do mojego ustawienia Findera, podczas gdy w 10.12 Sierra żadna aplikacja nie miała rozszerzenia w Spotlight, pomimo ustawienia Findera, chyba że zmieniłem jego nazwę lub nie miałem wielu kopii leżących w pobliżu.
Wygląda na to, że dzieje się tak, gdy Spotlight indeksuje aplikacje przed wprowadzeniem ustawienia ukrywania rozszerzeń. Powinieneś spróbować ponownie zindeksować aplikacje, aby rozwiązać ten problem.
Przejdź do karty Prywatność w preferencjach Spotlight i dodaj katalog Aplikacje do wykluczonych lokalizacji. To powinno usunąć wszystkie aplikacje z indeksu Spotlight. Następnie usuń go ponownie z wykluczonych lokalizacji, aby Spotlight ponownieindeksował aplikacje z prawidłowymi ustawieniami. Po ponownym indeksowaniu rozszerzenie „.app” powinno zostać usunięte ze wszystkich wyników.
Natychmiast rozwiąże problem .app