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