Какая разница между "отображаемым именем пучка" и "именем пакета" в <info> plash приложения cocoa

Вот хороший вопрос:

Имя пакета, исполняемое имя, название продукта... что-нибудь еще?

но я просто задаюсь вопросом о различии между "отображаемым именем пакета" и "именем пакета" в pl_info .

Ответ 1

Я не думаю, что любой из ответов отвечает на вопрос.

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

  • CFBundleName - отображается: Я понятия не имею. Документы предполагают, что он будет использоваться в списках, поэтому рекомендуется использовать максимум 16 символов, но, например, в приложении "Настройки" → "Общие" → "Приложения" используется CFBundleDisplayName. На сегодняшний день я никогда не выяснял, где именно используется этот.

О, это для приложений iOS, не может говорить для других ОС.

Ответ 2

спасибо за ответ Wevah. вот описания для людей, которые путают эти две константы.

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.

Ответ 3

a busy cat

Согласно Apple,

Отображаемое имя пульта:

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

Аналогично, имя приложения, которое вы видите в своем WatchKit app launch screenи notifications происходит от имени CFBundleDisplayName вашего WatchKit app Info.plist

Имя пакета:

The Apple Watch app on the iPhone в настоящее время использует имя пакета (не отображаемое имя пакета) вашего приложения iOS, которое определяется Имя CFBundleName (или "Bundle name" ) его Info.plist

Вы можете увидеть другие связанные скриншоты и получить дополнительную информацию на странице Apple Developer нажав здесь.

Ответ 4

Из моего опыта:

  • CFBundleDisplayName используется в сетке приложений на устройствах iOS.
  • CFBundleName используется в списке приложений, хранящихся в библиотеке iTunes.

Ответ 5

Только если отображаемое имя Bundle (CFBundleDisplayName) не указано, значение Bundle Name (CFBundleName) будет использоваться для отображения в значке приложения.

Обратите внимание, что CFBundleDisplayName является локализуемым, и его следует использовать для установки имени приложения, отображаемого в меню IOS Springboard и приложениях Mac OS X/Mission Control.

Короче говоря, не трогайте CFBundleName и оставляйте его значение по умолчанию, т.е. ${PRODUCT_NAME}.