Вот хороший вопрос:
Имя пакета, исполняемое имя, название продукта... что-нибудь еще?
но я просто задаюсь вопросом о различии между "отображаемым именем пакета" и "именем пакета" в pl_info .
Вот хороший вопрос:
Имя пакета, исполняемое имя, название продукта... что-нибудь еще?
но я просто задаюсь вопросом о различии между "отображаемым именем пакета" и "именем пакета" в pl_info .
Я не думаю, что любой из ответов отвечает на вопрос.
CFBundleDisplayName
- отображается: значок ниже. Согласно документам, они должны быть локализованы, но только если само приложение локализовано, иначе будет какой-то штраф (если это правда, на самом деле я не могу сказать)
CFBundleName
- отображается: Я понятия не имею. Документы предполагают, что он будет использоваться в списках, поэтому рекомендуется использовать максимум 16 символов, но, например, в приложении "Настройки" → "Общие" → "Приложения" используется CFBundleDisplayName
. На сегодняшний день я никогда не выяснял, где именно используется этот.
О, это для приложений iOS, не может говорить для других ОС.
спасибо за ответ Wevah. вот описания для людей, которые путают эти две константы.
CFBundleDisplayName
(String - iOS, Mac OS X) указывает отображаемое имя пакета. Если вы поддерживаете локализованные имена для своего пакета, включите этот ключ как в свой файл списка свойств информации, так и в файлы InfoPlist.strings ваших подкаталогов языка. Если вы локализуете этот ключ, вы также должны включить локализованную версию ключа CFBundleName.
Если вы не планируете локализовать свой пакет, не включайте этот ключ в свой файл Info.plist. Включение этого ключа не влияет на отображение имени пучка, но оно повлечет за собой штраф за выполнение поиска локализованных версий этого ключа.
Перед отображением локализованного имени для вашего пакета Finder сравнивает значение этого ключа с фактическим именем вашего пакета в файловой системе. Если совпадают два имени, Finder переходит к отображению локализованного имени из соответствующего файла InfoPlist.strings вашего пакета. Если имена не совпадают, Finder отображает имя файловой системы.
Дополнительные сведения о отображаемых именах в Mac OS X см. в разделе Обзор файловой системы.
CFBundleName
(String - iOS, Mac OS X) идентифицирует короткое имя пакета. Это имя должно быть меньше 16 символов и должно быть пригодно для отображения в строке меню и в окне сведений о приложениях. Вы можете включить этот ключ в файл InfoPlist.strings соответствующего подкаталога .lproj, чтобы предоставить ему локализованные значения. Если вы локализуете этот ключ, вы также должны включить ключ CFBundleDisplayName.
Согласно 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 нажав здесь.
Из моего опыта:
Только если отображаемое имя Bundle (CFBundleDisplayName
) не указано, значение Bundle Name (CFBundleName
) будет использоваться для отображения в значке приложения.
Обратите внимание, что CFBundleDisplayName
является локализуемым, и его следует использовать для установки имени приложения, отображаемого в меню IOS Springboard и приложениях Mac OS X/Mission Control.
Короче говоря, не трогайте CFBundleName
и оставляйте его значение по умолчанию, т.е. ${PRODUCT_NAME}
.