在cocoa应用程序的信息plist中,“bundle display name”和“bundle name”之间有什么区别

时间:2010-08-12 08:06:03

标签: iphone objective-c cocoa macos

这是一个很好的问题:

Bundle Name, Executable Name, Product Name...anything else?

但我只是想知道cocoa应用程序的信息plist中“bundle display name”和“bundle name”之间的区别。

6 个答案:

答案 0 :(得分:94)

我认为其他任何答案都没有简明扼要地回答这个问题。

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

  • CFBundleName - 显示:我不知道。文档建议它将在列表中使用,因此建议最多16个字符,但是例如设置→常规→使用情况的应用列表确实使用CFBundleDisplayName。到目前为止,我从来没有弄清楚这个用的确切位置。

哦,这适用于iOS应用,不能代表其他操作系统。

答案 1 :(得分:79)

谢谢Wevah的回答。这里是对这两个常数混淆的人的描述。

CFBundleDisplayName

CFBundleDisplayName(String - 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.

答案 2 :(得分:24)

a busy cat

根据Apple的说法,

捆绑显示名称:

  

显示的应用名称on the iPhone home screen来自   CFBundleDisplayName(或“Bundle display name”作为人类可读的   Xcode中的字符串)输入您的iOS应用程序的Info.plist

     

同样,您在WatchKit app's launch screen中看到的应用名称   notifications来自WatchKit的CFBundleDisplayName   app的Info.plist

捆绑名称:

  

The Apple Watch app on the iPhone目前使用捆绑名称(不是   iOS应用的捆绑显示名称,由   其Info.plist的CFBundleName(或“Bundle name”)条目

您可以在{+ 3}}的Apple Developer页面上查看其他相关屏幕截图并获取更多信息。

答案 3 :(得分:13)

根据我的经验:

  • CFBundleDisplayName 用于iOS设备上的应用网格
  • CFBundleName 用于iTunes资料库中存储的应用列表

答案 4 :(得分:9)

仅当未指定Bundle Display Name(CFBundleDisplayName)时,Bundle Name(CFBundleName)的值将用于显示在App Icon下。

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

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

答案 5 :(得分:0)

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