可可应用程序的信息列表中的“捆绑包显示名称”和“捆绑包名称”有什么区别


Answers:


102

我认为其他任何答案都不能简洁地回答这个问题。

  • CFBundleDisplayName-显示:在图标下方。根据文档,应该本地化,但只有在应用程序本身已本地化的情况下,否则会受到某种惩罚(如果这是事实,我不能说)

  • CFBundleName-显示:我不知道。文档建议将其用于列表中,因此建议最多使用16个字符,但例如“设置”→“常规”→“应用程序的使用情况”列表CFBundleDisplayName确实会使用。迄今为止,我还没有弄清楚到底该用在哪里。

哦,这是针对iOS应用的,不能代表其他操作系统。


7
CFBundleDisplayName也是显示为通知标题的内容(在通知中心,锁定屏幕等上)。
贾斯汀·罗素

114
“我不知道”答案如何获得选中标记并获得投票?
badweasel

14
我的观点是,似乎没人知道它的用途,还没有人回答。如果您确实知道答案,请随时点击“添加其他答案”来添加答案。
乔尼

2
iTunes文件共享功能中也使用CFBundleDisplayName。如果为黑色,则即使该功能已启用,该应用程序也不会显示在iTunes列表中。
unom 2014年

1
我想CFBundleName是存储所有内容的应用程序文件夹或“ bundle”的名称。
凯林2015年

100

感谢Wevah的回答。这是对与这两个常数相混淆的人们的描述。

CFBundleDisplayName

CFBundleDisplayName(字符串-iOS,Mac OS X)指定捆绑包的显示名称。如果您支持捆绑软件的本地化名称,请在您的信息属性列表文件和语言子目录的InfoPlist.strings文件中都包含此键。如果本地化此密钥,则还应包括CFBundleName密钥的本地化版本。

如果您不打算本地化软件包,则不要在Info.plist文件中包含此密钥。包含此键不会影响捆绑软件名称的显示,但是会导致性能损失,无法搜索该键的本地化版本。

在显示包的本地化名称之前,Finder会将此键的值与文件系统中包的实际名称进行比较。如果两个名称匹配,则Finder继续显示捆绑软件中相应InfoPlist.strings文件中的本地化名称。如果名称不匹配,Finder将显示文件系统名称。

有关Mac OS X中显示名称的更多信息,请参见文件系统概述。


CFBundleName

CFBundleName(字符串-iOS,Mac OS X)标识捆绑包的简称。此名称的长度应少于16个字符,并适合在菜单栏和应用程序的“信息”窗口中显示。您可以将此密钥包含在适当的.lproj子目录的InfoPlist.strings文件中,以为其提供本地化的值。如果本地化此密钥,则还应包括该密钥CFBundleDisplayName.


1
什么是“菜单栏和应用程序的信息窗口”?-这是指Xcode,模拟器还是iOS设备?@xhan-有帮助吗?
伊桑·帕克

@BeemerFan指的是OS X菜单栏。xhan引用了Apple的文档,并且,如果您会注意到,它说的是“ iOS,Mac OS X”,因此它适用于两者(显然,某些细节是特定于平台的。)
Chris Page

只是引用来源,以下是来自Apple文档的CFBundleDisplayName信息:developer.apple.com/library/ios/documentation/General/Reference/…–
tylermilner

除非计划本地化,否则不包含此密钥是错误的说法。Apple文档说您必须包括此密钥,因为Siri使用了它。developer.apple.com/library/archive/documentation/General/...
目中无人

1
看来苹果现在至少在2019-06-28或最近某个地方需要CFBundleDisplayName。您现在收到无效的二进制拒绝。
Dave Hubbard

29

忙碌的猫

根据苹果的说法,

捆绑包显示名称:

显示的应用程序名称on the iPhone home screen来自iOS应用程序的Info.plist的CFBundleDisplayName(或Xcode中易于理解的字符串“ Bundle display name”)。

同样,你在看到应用程序名称WatchKit app's launch screennotifications来自您的WatchKit应用程序的Info.plist的CFBundleDisplayName

捆绑名称:

The Apple Watch app on the iPhone 当前使用您的iOS应用的捆绑包名称(而不是捆绑包显示名称),该名称由其Info.plist的CFBundleName(或“捆绑包名称”)条目指定

您可以单击此处在Apple Developer页面上查看其他相关的屏幕快照并获得更多信息。


19
我忍不住想:如果要麻烦截取屏幕快照以显示值的使用方式,给它们提供不同的值以使它们看起来有所不同会更好吗?
理查德·

15

根据我的经验:

  • CFBundleDisplayName在iOS设备上的应用程序网格中使用
  • CFBundleName用于iTunes库中存储的应用程序列表中

6
只是苹果使简单的事情变得复杂。
鸭子

这似乎是正确的,Google Hangouts的显示名称很短,而垃圾邮件之类的iTunes库名称却长得令人讨厌。

1
如果在安装应用程序时收到错误消息,例如“(CFBundleName)目前无法安装”,CFBundleName也将出现。
saveknut

10

仅当CFBundleDisplayName未指定捆绑包显示名称()时,捆绑包名称(CFBundleName)的值才会用于在应用程序图标下显示。

请注意,它CFBundleDisplayName是可本地化的,并且应用于设置iOS Springboard菜单和Mac OS X应用程序/任务控制中显示的应用程序名称。

简而言之,请勿触摸CFBundleName并将其值保留为默认值,即${PRODUCT_NAME}


0

请注意,捆绑包名称还用作HTTP用户代理的前缀。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.