Чому деякі результати прожекторів програми показують розширення “.app”, але не всі?


11

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

ім'я файлу

Ось кілька прикладів.

Я бігаю гірським левом.

скайп
слово
горобець
примітки


Чи можуть це бути програми, які задають ім'я локалізованого пакета? Так, що ім'я пакета показує, на відміну від імені файлу?
Тіло

Це питання дуже схоже на [це] [1]. [1]: apple.stackexchange.com/questions/33378/…
mcw

Відповіді:


9

TL; DR

В основному, це виправлення помилок або помилок, введених у macOS 10.13 High Sierra: Spotlight тепер поважає налаштування Finder для показу розширень файлів. Якщо вимкнути цей параметр, вилучення .app розширюється із прожектора.

Повна відповідь

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

Насправді програми відображаються так, ніби вони є одним файлом; Apple закликає цей пакет (незважаючи на те, що Finder назвав його " Package ", як у " Show Contents Package " у контекстному меню). Не тільки програми - це пакети, Apple використовує пакети також для фреймворків, плагінів, розширень додатків, служб XPI, певного типу пакетів інсталятора, а також формату зберігання даних, якщо збережені дані складаються з декількох файлів, але мають відображатися як один файл (наприклад, документ RTF із зображеннями може зберігатися у вигляді пакету RTFD). Пакети завжди мають справжнє ім'я, назву запису файлу на диску. Тож якщо більше нічого немає для відображення, macOS відображає цю назву скрізь.

Однак у пакетах всередині є інформаційний файл, названий Info.plist, який містить всі види метаданих про пакет. Одне, що такий інформаційний файл може визначити - це ім'я відображення . Якщо таке відображуване ім'я встановлено, Finder відображатиме відображуване ім'я, а не справжнє ім'я каталогу. Тобто, якщо каталог не перейменований, який Finder може виявити, якщо ім'я каталогу не відповідає імені пакета у Info.plistфайлі. Ну, зізнаюся, це трохи складно. Спробуємо це на прикладі:

  1. Каталог названий My App.app
  2. Ім'я пакета в Info.plistІБMy App
  3. Дисплей ім'я пакета в Info.plistISMy 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, якщо я не перейменував його або якщо у мене не було декількох примірників, що лежать навколо.


1
У мене те саме питання з моменту оновлення до macos 10.13 (Висока Сьєрра). QA серйозно бракує певного часу в Apple :(
Xavier

У мене є одна машина, яка показує ".app" і одна, яка ні. Той, що робить, це той, який я перемістив із машини, що була перенесена. Той, що не був свіжий, стертий та повторно встановлений.
Пол Томблін

Яке джерело для речення "Для деяких користувачів це виправлено ..."? Інакше чудова відповідь!
Ерік

@Erik Я переглядав форум підтримки Apple, і це було запропоновано виправити. Пара користувачів відповіли "Так, це виправлено", і приблизно стільки ж користувачів відповіли "Пробував це, але різниці немає". Для мене це не спрацювало, тому я належу до останньої категорії. Я припускаю, що існує кілька причин, які призводять до однієї проблеми, і їх можна усунути шляхом повторної індексації, але інші причини не будуть виправлені таким чином - але це лише припущення.
Mecki

2

Здається, це трапляється, коли Spotlight індексує додатки до того, як діяла настройка приховування розширень. Щоб вирішити цю проблему, спробуйте перевстановити програми.

Перейдіть на вкладку "Конфіденційність" у розділі "Параметри прожектора" та додайте каталог додатків у виключені місця. Це повинно видалити всі програми з індексу Spotlight. Потім вийміть його знову з виключених місць, щоб Spotlight повторно застосував програми з правильними налаштуваннями. Після повторного введення розширення ".app" слід видалити всі результати.


Я заперечував вас, тому що ваша відповідь була чистою міркуванням в той момент, що краще підходить для коментаря, ніж відповіді.
Геррі

О, ДОБРЕ. Вибачте, що я не знайомий з роботою цього сайту ..
Frédéric Dénommé

Без проблем, ласкаво просимо на сайт.
Геррі

1
Здається, це не працює для мене, коли я змінюю налаштування, щоб показувати розширення та повторно встановлювати всі програми.
Геррі

0
  1. Перейдіть до: Finder> Preferences> Advanced
  2. зніміть прапорець "Показати всі розширення файлів"

Це вирішить проблему .app негайно


Ласкаво просимо до "Запитайте різних". Ми вважаємо за краще, щоб відповіді містили інформацію, чому вони працюватимуть. Дивіться, як відповісти, щоб отримати поради щодо надання якісних відповідей. - З огляду.
fsb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.