捆绑名称和捆绑包显示名称

时间:2012-03-12 13:07:32

标签: xcode

类似的问题有关Bundle Name和Bundle Display Name的问题,例如:

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

但到目前为止,我还没有看到一个非常好的简洁答案,当你需要使用它们时,它们可能被指定不同,等等。

文档似乎表明,捆绑显示名称仅在您具有本地化时才有用,如果您在没有本地化时指定它,可能会损害性能。

有人可以一劳永逸地解决这些问题吗?

Apple的文档

  

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

     

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

     

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

     

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

3 个答案:

答案 0 :(得分:10)

CFBundleDisplayName 用于更改设备(和模拟器)上应用图标下方的文字。是的,这应该是本地化的,但是在编辑它或让它说出你想要的任何内容时,没有明显的性能损失。

要编辑它,您可以更改项目中“info”下的“Bundle display name”:

Location of the Bundle display name attribute

CFBundleName 不是一个线索。我无法弄清楚这种变化或原因。

答案 1 :(得分:4)

我刚刚在Apples iOS Dev Library中找到了这个文档:Making the app name displayed on a device consistent with the name in iTunes Connect.这个名字有点误导,但这解决了我对' Bundle name'之间区别的理解。和'捆绑显示名称'顷刻。

我希望这对你们也有帮助。 :)

答案 2 :(得分:1)

for iOS(不确定macOS或watchOS)

CFBundleName - 如果info.plist中不存在CFBundleDisplayName,则为后备。 此外,Siri使用CFBundleDisplayName。

如果您本地化CFBundleDisplayName,您还必须本地化CFBundleDisplayName。

以下是相同的苹果链接 - https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-110725