【发布时间】:2012-03-28 21:11:16
【问题描述】:
有人问过关于Bundle Name和Bundle Display Name的类似问题,比如:
但到目前为止,我还没有读到关于何时需要同时使用它们、何时可能以不同方式指定它们等等的非常简洁的答案。
文档似乎表明捆绑显示名称仅在您进行本地化时才有用,如果您在没有本地化时指定它可能会损害性能。
有人可以一劳永逸地解决这些问题吗?
Apple 的文档
CFBundleName (String - 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 将显示 文件系统名称。
【问题讨论】:
-
好问题,好消息是捆绑显示名称将编辑图标下的文本,捆绑名称不会造成任何伤害(据我所知!)
-
我认为您从 Apple 文档中复制的段落非常清楚地表明您只需要 CFBundleName,除非您计划提供本地化字符串,在这种情况下(并且仅在这种情况下)您还需要提供 CFBundleDisplayName。
标签: xcode