Яка різниця між "ім'ям відображення в'язки" та "назвою пакета" в інформаційному списку додатків для какао


Відповіді:


102

Я не думаю, що жодна з інших відповідей стисло відповідає на питання.

  • CFBundleDisplayName- відображено: під значком . Згідно з документами, це потрібно локалізувати, але лише якщо локальний додаток локалізовано, інакше буде певне покарання (якщо це справді справді, я не можу сказати)

  • CFBundleName- відображено: я поняття не маю . Документи пропонують використовувати його у списках, таким чином, рекомендується максимум 16 символів, але, наприклад, Параметри → Загальне → Список використання програм CFBundleDisplayNameдійсно використовує . На сьогоднішній день я ніколи не з'ясовував, де саме використовується цей.

О, це для додатків iOS, не можна говорити про інші ОС.


7
CFBundleDisplayName - це також те, що відображається як назва сповіщень (у Центрі сповіщень, на заблокованому екрані тощо).
Джастін Рассел

114
як відповідь "я не маю уявлення" отримав галочку та підрахував голоси?
badweasel

14
Моя думка, що, здається, ніхто не знає, де його використовують, ніхто ще не відповів. Якщо ви знаєте відповідь, сміливо додайте її, натиснувши "Додати ще одну відповідь".
Джоні

2
CFBundleDisplayName також використовується в функції обміну файлами iTunes. Якщо залишити чорним кольором, додаток не відображатиметься у списку iTunes, навіть якщо ця функція ввімкнена.
Unom

1
Я припускаю, що CFBundleName - це назва папки додатків або "пакет", де все зберігається.
келін

100

дякую за відповідь Веви. ось описи для людей, які плутають ці дві константи.

CFBundleDisplayName

CFBundleDisplayName(String - iOS, Mac OS X) визначає відображувану назву пакета. Якщо ви підтримуєте локалізовані імена для свого пакета, включіть цей ключ як у файл списку властивостей інформації, так і у файли InfoPlist.strings у ваших мовних підкаталогах. Якщо ви локалізуєте цей ключ, вам слід також включити локалізовану версію ключа CFBundleName.

Якщо ви не збираєтесь локалізувати пакет, не включайте цей ключ у файл Info.plist. Включення цього ключа не впливає на відображення імені пакета, але несе штрафну ефективність за пошук локалізованих версій цього ключа.

Перш ніж відображати локалізоване ім’я для свого пакета, Finder порівнює значення цього ключа з фактичним іменем вашого пакета у файловій системі. Якщо обидва імена збігаються, Finder переходить до відображення локалізованого імені з відповідного файлу InfoPlist.strings вашого пакету. Якщо імена не збігаються, Finder відображає ім’я файлової системи.

Для отримання додаткової інформації про відображувані імена в Mac OS X див. Огляд файлової системи.


CFBundleName

CFBundleName(String - iOS, Mac OS X) ідентифікує коротку назву пакета. Це ім'я має містити менше 16 символів і підходити для відображення в рядку меню та вікні інформації програми. Ви можете включити цей ключ у файл InfoPlist.strings відповідного підкаталогу .lproj, щоб забезпечити для нього локалізовані значення. Якщо ви локалізуєте цей ключ, вам слід також включити ключCFBundleDisplayName.


1
Що таке "панель меню та інформаційне вікно програми" ??? - Це стосується чогось у Xcode, тренажері чи пристрої iOS? @xhan - будь-яка допомога?
Етан Паркер

@BeemerFan посилається на рядок меню OS X. xhan процитувала документації Apple, і якщо ви помітите, він говорить : «IOS, Mac OS X», так що це відноситься до обох (і деякі деталі є конкретної платформи, очевидно).
Кріс Сторінка

Тільки щоб навести джерело, ось інформація про CFBundleDisplayName з документів Apple: developer.apple.com/library/ios/documentation/General/Reference/…
tylermilner

Неправильно сказати, що не включайте цей ключ, якщо не плануєте локалізувати. Документ Apple говорить, що ви повинні включити цей ключ, оскільки його використовує Сірі. developer.apple.com/library/archive/documentation/General / ...
зухвало

1
Схоже, Apple зараз вимагає CFBundleDisplayName, принаймні, 2019-06-28 або десь недавно. Зараз ви отримуєте недійсне бінарне відхилення.
Дейв Хаббард

29

зайнятий кіт

За словами Apple,

Відображуване ім'я групи:

Відображається назва програми on the iPhone home screenпоходить від CFBundleDisplayName (або "Відображувальне ім'я групи" як рядок, що читається людиною в Xcode) запису Info.plist вашого додатка iOS

Так само назва програми, яку ви бачите у своєму WatchKit app's launch screen і notificationsпоходить від CFBundleDisplayName вашого Info.plist додатка WatchKit

Назва пакету:

The Apple Watch app on the iPhone В даний час використовується ім'я пакета (не відображуване ім'я пакета) вашого додатка для iOS, яке вказано в записи CFBundleName (або "ім'я пакета") свого Info.plist

Ви можете побачити інші пов'язані знімки екрана та отримати додаткову інформацію на сторінці розробника Apple, натиснувши тут .


19
Не можу не задатися питанням: якщо ви збираєтеся зіткнутися з проблемою зробити знімок екрана, щоб показати, як використовуються ці значення, не було б краще дати їм різні значення, щоб вони відображалися по-різному?
Річард Салай

15

З мого досвіду:

  • CFBundleDisplayName використовується в сітці програм на пристроях iOS
  • CFBundleName використовується в списку програм, що зберігаються в бібліотеці iTunes

6
Просто Apple, щоб зробити просту річ складною.
Качка

Це здається правильно, Google Hangouts має коротке відображуване ім’я та неприємно довге ім'я бібліотеки iTunes, схоже на спам.

1
CFBundleName також з'являється, якщо ви отримуєте повідомлення про помилку під час встановлення програми, наприклад "( CFBundleName ) не вдалося встановити наразі ".
saveknut

10

Тільки якщо дисплейне ім'я групи ( CFBundleDisplayName) не вказане, значення Імені групи (CFBundleName ) буде використано для відображення під Значком програми.

Будь ласка, зверніть увагу, що CFBundleDisplayName це локалізується, і його слід використовувати для встановлення імені додатка, показаного в меню трампліну iOS & Mac OS X Applications / Mission Control.

Коротше кажучи, не торкайтесь CFBundleNameі не залишайте його значення як стандартне, тобто ${PRODUCT_NAME}.


0

Зауважте, що ім'я пакету також використовується як префікс для HTTP-користувача-агента.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.