Dlaczego niektóre wyniki wyróżnienia aplikacji pokazują rozszerzenie „.app”, ale nie wszystkie?

11

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.

nazwa pliku exts

Oto kilka przykładów.

Prowadzę Mountain Lion.

skype
słowo
wróbel
notatki

Czerwony i biały
źródło
Czy mogą to być aplikacje, które określają zlokalizowaną nazwę pakietu? Aby nazwa pakietu była wyświetlana w przeciwieństwie do nazwy pliku?
Thilo,
To pytanie jest bardzo podobne do [tego] [1]. [1]: apple.stackexchange.com/questions/33378/…
mcw

Odpowiedzi:

9

TL; DR

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.

Pełna odpowiedź

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.plistw 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.plistpliku. Przyznaję, to trochę skomplikowane. Spróbujmy na przykładzie:

  1. Katalog ma nazwę My App.app
  2. Nazwa pakietu w Info.plisttoMy App
  3. Wyświetlana nazwa bundle w Info.plistIsMy Cool App

Dzięki tej kombinacji Finder wyświetli aplikację jako My Cool App.app(lub po prostu, My Cool Appjeś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.apptylko (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.plistwyś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 .stringsplikó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.lprojdla języka angielskiego, fr.lprojdla francuskich itp Ale może być też język + kraj, jak en_US.lproj, en_GB.lproj, en_AU.lproji tak dalej. Wewnątrz znajduje się plik o nazwie, InfoPlist.stringsktóry może zastąpić podstawowe wartości tego Info.plistpliku. 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.plistpliku. Jeśli nie zdefiniowano takiej lokalizacji, wartości z Info.plistsą 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 .approzszerzenie, 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ą .approzszerzenie 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.

Mecki
źródło
1
Mam ten sam problem od czasu aktualizacji do systemu macos 10.13 (High Sierra). QA poważnie brakuje od dłuższego czasu w Apple :(
Xavier,
Mam jedną maszynę, która pokazuje „.app”, a drugą nie. Ten, który to robi, to taki, który migrowałem z komputera, który został poddany migracji. Ten, który nie został świeżo wyczyszczony i ponownie zainstalowany.
Paul Tomblin,
Jakie jest twoje źródło zdania „Dla niektórych użytkowników jest to ustalone ...”? W przeciwnym razie świetna odpowiedź!
Erik
@Erik Przeglądałem forum wsparcia Apple i była to sugerowana poprawka. Kilku użytkowników odpowiedziało „Tak, to naprawiło” i mniej więcej tyle samo użytkowników odpowiedziało „Próbowałem, ale bez różnicy”. Dla mnie to nie działało, więc należę do ostatniej kategorii. Zakładam, że istnieje wiele przyczyn, które prowadzą do tego samego problemu, a jedną z nich można naprawić przez ponowne indeksowanie, ale inne przyczyny nie zostaną naprawione w ten sposób - ale to tylko spekulacja.
Mecki
2

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.

Frédéric Dénommé
źródło
Głosowałem za tobą, ponieważ twoja odpowiedź była w tym momencie czystą spekulacją, która lepiej pasuje do komentarza niż odpowiedzi.
Gerry,
OH - OK. Niestety nie znam funkcjonowania tej strony.
Frédéric Dénommé,
Nie ma problemu, witamy na stronie.
Gerry,
1
Wydaje mi się, że to nie działa, gdy zmieniam ustawienie wyświetlania rozszerzeń i ponownego indeksowania wszystkich aplikacji.
Gerry,
0
  1. Przejdź do: Finder> Preferencje> Zaawansowane
  2. odznacz „Pokaż wszystkie rozszerzenia plików”

Natychmiast rozwiąże problem .app

Milos Dimic
źródło
Witamy w Zapytaj inaczej. Wolimy, aby odpowiedzi zawierały informacje o tym, dlaczego będą działać. Wskazówki dotyczące udzielania odpowiedzi dobrej jakości można znaleźć w części Jak odpowiedzieć. - Z przeglądu.
fsb