【问题标题】:Bundle Name and Bundle Display Name捆绑包名称和捆绑包显示名称
【发布时间】:2012-03-28 21:11:16
【问题描述】:

有人问过关于Bundle Name和Bundle Display Name的类似问题,比如:

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

但到目前为止,我还没有读到关于何时需要同时使用它们、何时可能以不同方式指定它们等等的非常简洁的答案。

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

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

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


【解决方案1】:

适用于 iOS(不确定 macOS 或 watchOS)

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

如果你本地化 CFBundleDisplayName,你也必须本地化 CFBundleDisplayName。

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

【讨论】:

    【解决方案2】:

    我刚刚在 Apples iOS Dev Library 找到了这个文档:Making the app name displayed on a device consistent with the name in iTunes Connect. 这个名字有点误导,但这瞬间解决了我对“Bundle name”和“Bundle display name”之间区别的理解。

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

    【讨论】:

    • 很好的发现。但请在答案中添加更多细节。简单地链接一篇文章并不是 SO 的好习惯,因为链接将来可能会变成 404。
    【解决方案3】:

    CFBundleDisplayName 用于更改设备(和模拟器)上应用图标下方的文本。是的,这应该是本地化的,但是编辑它或让它说出你想要的任何东西都不会对性能造成明显的影响。

    要编辑它,您可以在项目中更改“信息”下的“捆绑显示名称”:

    CFBundleName 没有线索。我无法弄清楚这会发生什么变化或为什么。

    【讨论】:

    • CFBundleName 是菜单栏和应用程序信息窗口中显示的内容。
    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多