Почему в некоторых результатах приложения отображается расширение «.app», но не все?

10

Несмотря на то, что я явно установил предпочтение Finder для отображения всех расширений файлов, я все же обнаружил, что некоторые приложения не показывают расширение имен файлов в своих результатах Spotlight.

имя файла exts

Вот несколько примеров.

Я бегу Горный Лев.

скайп
слово
воробей
заметки

Красный и белый
источник
Может ли это быть приложения, которые определяют локализованное имя пакета? Чтобы имя пакета отображалось, а не имя файла?
Тило
Этот вопрос очень похож на [этот] [1]. [1]: apple.stackexchange.com/questions/33378/…
mcw0933

Ответы:

8

TL; DR

По сути, это ошибка или исправление, появившееся в macOS 10.13 High Sierra: Spotlight теперь учитывает настройку Finder для отображения расширений файлов. Отключение этого параметра удаляет расширение .app из Spotlight.

Полный ответ

Я знаю, что это очень старый вопрос, но у меня только что была дежа-вю в 10.13 Высшая Сьерра; отличается от этого, но с некоторыми сходствами, поэтому я искал его и наткнулся на этот вопрос, и вот мой ответ:

Приложения на самом деле каталоги отображаются так, как если бы они были одним файлом; Apple называет это пакетом (несмотря на то, что Finder называет его « Пакет », как в « Показать содержимое пакета » в контекстном меню). Не только приложения являются пакетами, Apple использует пакеты также для платформ, плагинов, расширений приложений, служб XPI, определенных видов пакетов установки, а также формата хранения данных, если хранимые данные состоят из нескольких файлов, но должны отображаться как один файл (например, RTF-документ с изображениями может быть сохранен как пакет RTFD). Пакеты всегда имеют реальное имя, имя файла записи на диске. Поэтому, если отображать больше нечего, macOS отображает это имя везде.

Однако в пакетах есть информационный файл с именем named Info.plist, который содержит все виды метаданных о пакете. Одна вещь, которую такой информационный файл может определить - это отображаемое имя . Если такое отображаемое имя установлено, Finder отобразит отображаемое имя, а не реальное имя каталога. То есть, если каталог не был переименован, что Finder может обнаружить, если имя каталога не совпадает с именем пакета в Info.plistфайле. Ну, я признаю, это немного сложно. Давайте попробуем это на примере:

  1. Каталог называется My App.app
  2. Имя пакета в Info.plistэтоMy App
  3. Расслоением отображаемое имя в Info.plistэтоMy Cool App

С этой комбинацией Finder покажет приложение как My Cool App.app(или просто, My Cool Appесли расширения скрыты). Пока (1) и (2) совпадают по имени, отображается (3).

Если я теперь переименую каталог в My Boring App.app, то Finder отобразит его My Boring App.appтак, как только, если (1) и (2) не совпадают по имени, отобразится (1), как будто пользователь хочет, чтобы его / ее приложение было переименовано, из Конечно, Finder должен отображать выбранное пользователем имя, имеет смысл, не так ли?

Уже достаточно сложно? Ну, извини, но теперь все становится еще сложнее. Все значения в Info.plist, которые отображаются для пользователей, могут быть локализованы , поэтому, если ваша система настроена на американский английский, отображаемое имя пакета может быть My Cool App, но если система установлена ​​на британский английский, это может быть My Amazing App. Если для текущего системного языка существует локализация, Finder отобразит эту локализацию, но снова, только если совпадают имена (1) и (2), в противном случае (1) снова победит.

Локализация осуществляется путем размещения .stringsфайлов в пучках на подгруппы каталогов, которые названы <x>.lproj, где <x>только может быть код языка, например en.lprojна английском языке, fr.lprojна французском языке, и т.д. Но также может быть язык + страна, как en_US.lproj, en_GB.lproj, en_AU.lprojи так далее. Внутри находится файл с именем, InfoPlist.stringsи этот файл может переопределять базовые значения Info.plistфайла. Если соответствующая локализация не найдена, используются значения из базовой локализации (называемой областью разработки ), которая также определяется Info.plistфайлом. Если такая локализация не определена, значения из Info.plistиспользуются напрямую.

Прожектор ведет себя как Finder, если совпадение (1) и (2) в имени (3) отображается либо непосредственно, либо из соответствующей локализации. Если (3) не установлено, отображается (1). Но в отличие от Finder он не всегда добавляет .appрасширение, даже если запрашивается в настройках Finder. Мне не удалось найти точную модель поведения, но определенная комбинация настроек не позволит Spotlight показывать расширение, независимо от того, что вы настроили. Для некоторых пользователей это фиксируется путем изменения настроек Finder , а затем работает sudo mdutil -E /в Terminal(который снова индексах всего). Но это работает не для всех пользователей, которые могут иметь отношение к выбранному языку / региону.

В основном это ошибка. Либо реиндексация исправляет это, либо это не может быть исправлено. И поведение Apple было изменено в какой-то версии macOS и после этого оставалось неизменным ... то есть до 10.13 High Sierra. Внезапно все мои приложения имеют .appрасширение в Spotlight, которое соответствует моим настройкам Finder, тогда как в 10.12 Sierra ни одно приложение не имело расширения в Spotlight, несмотря на настройку Finder, если только я не переименовал его или если у меня не было нескольких копий, лежащих вокруг.

Mecki
источник
1
У меня та же проблема после обновления до macos 10.13 (High Sierra). В Apple некоторое время не хватало QA :(
Xavier
У меня есть одна машина, которая показывает «.app», а другая - нет. Это то, что я перенес с машины, которая была перенесена. Тот, который не был недавно вытерт и переустановлен.
Пол Томблин
Каков ваш источник для предложения «Для некоторых пользователей это исправлено ...»? В противном случае отличный ответ!
Эрик
@Erik Я просматривал форум поддержки Apple, и это было предложенное исправление. Несколько пользователей ответили: «Да, это исправлено», и примерно столько же пользователей ответили: «Попробовал, но без разницы». Для меня это не сработало, поэтому я принадлежу к последней категории. Я предполагаю, что существует несколько причин, которые приводят к одной и той же проблеме, и одну из них можно устранить путем повторной индексации, но другие причины не будут устранены таким образом - но это всего лишь предположение.
Меки
2

Похоже, это происходит, когда Spotlight индексирует приложения до того, как вступил в силу параметр скрытия расширений. Вы должны попробовать переиндексировать приложения, чтобы решить эту проблему.

Перейдите на вкладку «Конфиденциальность» в настройках Spotlight и добавьте каталог «Приложения» в исключенные местоположения. Это должно удалить все приложения из индекса Spotlight. Затем удалите его снова из исключенных местоположений, чтобы Spotlight переиндексировал приложения с правильными настройками. После переиндексации расширение «.app» должно быть удалено из всех результатов.

Фредерик Деномме
источник
Я подавлял вас, потому что ваш ответ на тот момент был чисто домыслом, который лучше подходит для комментария, чем для ответа.
Джерри
ОН - ОК. Извините, я не знаком с работой этого сайта ..
Frédéric Dénommé
Нет проблем, добро пожаловать на сайт.
Джерри
1
Это не работает для меня, когда я изменяю настройку, чтобы показать расширения и переиндексировать все приложения.
Джерри
0

Перейдите: Finder> Настройки> Дополнительно снимите флажок «Показать все расширения файлов»

Это решит проблему .app немедленно.

Милош Димич
источник
Добро пожаловать, чтобы спросить другого. Мы предпочитаем, чтобы ответы предоставляли информацию о том, почему они будут работать. Пожалуйста, ознакомьтесь с разделом Как ответить для получения советов по предоставлению качественных ответов. - Из обзора.
ФСБ