这是一个很好的问题:
Bundle Name, Executable Name, Product Name...anything else?
但我只是想知道cocoa应用程序的信息plist中“bundle display name”和“bundle name”之间的区别。
答案 0 :(得分:94)
我认为其他任何答案都没有简明扼要地回答这个问题。
CFBundleDisplayName
- 显示:图标下方。根据文档,应该是本地化的,但只有当应用程序本身是本地化的,否则会有某种惩罚(如果这在现实中是真的我不能说)
CFBundleName
- 显示:我不知道。文档建议它将在列表中使用,因此建议最多16个字符,但是例如设置→常规→使用情况的应用列表确实使用CFBundleDisplayName
。到目前为止,我从来没有弄清楚这个用的确切位置。
哦,这适用于iOS应用,不能代表其他操作系统。
答案 1 :(得分:79)
CFBundleDisplayName
(String - iOS,Mac OS X)指定捆绑包的显示名称。如果您支持捆绑包的本地化名称,请在信息属性列表文件和语言子目录的InfoPlist.strings文件中包含此密钥。如果您本地化此密钥,则还应包括CFBundleName密钥的本地化版本。
如果您不打算本地化捆绑包,请不要在Info.plist文件中包含此密钥。包含此密钥不会影响软件包名称的显示,但会在搜索此密钥的本地化版本时产生性能损失。
在显示捆绑软件的本地化名称之前,Finder会将此密钥的值与文件系统中捆绑软件的实际名称进行比较。如果两个名称匹配,Finder将继续显示捆绑包的相应InfoPlist.strings文件中的本地化名称。如果名称不匹配,Finder将显示文件系统名称。
有关Mac OS X中显示名称的详细信息,请参阅文件系统概述。
CFBundleName
(字符串 - iOS,Mac OS X)标识捆绑包的短名称。此名称长度应少于16个字符,并且适合在菜单栏和应用程序的“信息”窗口中显示。您可以将此密钥包含在相应.lproj子目录的InfoPlist.strings文件中,以便为其提供本地化值。如果您将此键本地化,则还应包含键CFBundleDisplayName.
答案 2 :(得分:24)
根据Apple的说法,
显示的应用名称
on the iPhone home screen
来自 CFBundleDisplayName(或“Bundle display name”作为人类可读的 Xcode中的字符串)输入您的iOS应用程序的Info.plist同样,您在
WatchKit app's launch screen
中看到的应用名称notifications
来自WatchKit的CFBundleDisplayName app的Info.plist
The Apple Watch app on the iPhone
目前使用捆绑名称(不是 iOS应用的捆绑显示名称,由 其Info.plist的CFBundleName(或“Bundle name”)条目
您可以在{+ 3}}的Apple Developer页面上查看其他相关屏幕截图并获取更多信息。
答案 3 :(得分:13)
根据我的经验:
答案 4 :(得分:9)
仅当未指定Bundle Display Name(CFBundleDisplayName
)时,Bundle Name(CFBundleName
)的值将用于显示在App Icon下。
请注意CFBundleDisplayName
是可本地化的,它应该用于设置iOS Springboard菜单中显示的App名称。 Mac OS X应用程序/任务控制。
简而言之,请勿触摸CFBundleName
并将其值保留为默认值,即${PRODUCT_NAME}
。
答案 5 :(得分:0)
请注意,捆绑包名称还用作HTTP用户代理的前缀。