2012-03-12 130 views
10

关于软件包名称和捆绑显示名称类似的问题已经被问,比如:软件包名称和捆绑显示名称

What's the difference between "bundle display name" and "bundle name" in cocoa application's info plist

但到目前为止,我还没有读过,当你需要在一个很不错的简洁回答使用它们,当它们可以被不同地指定时,等等。

该文档似乎表明,如果您有本地化,并且可能会损害性能(如果您在没有本地化时指定它),那么捆绑显示名称才有用。

有人可以一劳永逸地清除这些问题吗?

苹果的文档

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

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

如果您不打算本地化您的软件包,请不要在Info.plist文件中包含此密钥 。包含此密钥不会影响软件包名称的 显示,但确实会导致性能损失至 搜索此密钥的本地化版本。

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

+0

好问题,好消息是捆绑显示名称将编辑图标下的文本和捆绑名称不会伤害任何东西(据我所知!) – 2014-02-06 23:24:59

+0

我们这两个问题没有帮助吗? http://stackoverflow.com/questions/19337639/how-do-i-change-the-display-name-in-xcode-5 http://stackoverflow.com/questions/9667582/bundle-name-and-bundle-display-name – amahfouz 2015-02-20 05:02:40

+0

我认为你从Apple的文档中复制的段落非常清楚你只需要CFBundleName,除非你打算在这种情况下提供本地化的字符串(并且只在这种情况下),你需要还提供CFBundleDisplayName。 – ukayer 2017-09-28 01:14:16

回答

10

CFBundleDisplayName是改变你的设备(和仿真器)上的应用程序图标下的文字。是的,这应该是本地化的,但是在编辑或者说出任何你想要的内容方面没有实际的性能损失。

进行编辑,你可以在“下包显示名称‘项目信息’改变:

Location of the Bundle display name attribute

CFBundleName没有线索我想不通这是什么改变或为什么。

+1

** CFBundleName **是在菜单栏和应用程序的“信息”窗口中显示的内容。 – Jimi 2016-06-02 10:06:24