关于捆绑包名称和捆绑包显示名称的类似问题已经被询问,例如:
What's the difference between "bundle display name" and "bundle name" in cocoa application's info plist
但到目前为止,我还没有读到一个非常好的简洁的答案,当你需要同时使用它们时,当它们可能被不同地指定时,等等。
文档似乎建议bundle显示名称只有在本地化的情况下才有用,如果在没有本地化的情况下指定它,可能会影响性能。
有人能一劳永逸地解决这些问题吗?
Apple文档
CFBundleName(String - iOS,Mac OS X)标识捆绑包的短名称。此名称的长度应小于16个字符,并且适合显示在菜单栏和应用程序的“信息”窗口中。您可以在相应的.lproj子目录的InfoPlist.strings文件中包含此键,以提供其本地化值。如果本地化此键,则还应包含键“CFBundleDisplayName”。
CFBundleDisplayName(String - iOS,Mac OS X)指定包的显示名称。如果支持包的本地化名称,请在信息属性列表文件和语言子目录的InfoPlist.strings文件中包含此键。如果本地化此键,还应包含CFBundleName键的本地化版本。
如果您不打算本地化您的软件包,请不要在Info.plist文件中包含此注册表项。包含此注册表项不会影响软件包名称的显示,但会导致搜索此注册表项的本地化版本时性能下降。
在显示bundle的本地化名称之前,Finder会将此键的值与文件系统中bundle的实际名称进行比较。如果两个名称匹配,Finder将继续显示bundle相应InfoPlist.strings文件中的本地化名称。如果名称不匹配,Finder将显示文件系统名称。
3条答案
按热度按时间iyzzxitl1#
CFBundleDisplayName用于更改设备(和模拟器)上应用图标下方的文本。是的,这应该是本地化的,但编辑它或让它说出你想要的任何东西都不会对性能造成有形的损失。
要编辑它,您可以更改项目中“info”下的“Bundle显示名称:
CFBundleName没有线索,我不知道这会改变什么,也不知道为什么会改变。
n6lpvg4x2#
我刚刚在苹果iOS开发者库中找到了这个文档:Making the app name displayed on a device consistent with the name in iTunes Connect.这个名字有点误导,但这在瞬间解决了我对“Bundle name”和“Bundle display name”之间区别的理解。
我希望这对你们也有帮助
bvpmtnay3#
适用于iOS(不确定macOS或watchOS)
CFBundleName -是在info. plist中不存在CFBundleDisplayName时的回退。此外,Siri使用CFBundleDisplayName。
如果本地化了CFBundleDisplayName,则还必须本地化CFBundleName。
这里是苹果的链接相同-https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-110725