xha*_*han 117 iphone macos cocoa objective-c
这是一个很好的问题:
但我只是想知道cocoa应用程序的信息plist中"bundle display name"和"bundle name"之间的区别.
Jon*_*nny 97
我认为其他任何答案都没有简明扼要地回答这个问题.
CFBundleDisplayName
- 显示:图标下方.根据文档,应该是本地化的,但只有当应用程序本身是本地化的,否则会有某种惩罚(如果这在现实中是真的我不能说)
CFBundleName
- 显示:我不知道.文档建议它将在列表中使用,因此建议最多16个字符,但是例如设置→常规→用法列表的应用程序CFBundleDisplayName
确实使用.到目前为止,我从来没有弄清楚这个用户到底在哪里.
哦,这是适用于iOS应用程序,不能代表其他操作系统.
xha*_*han 88
感谢Wevah的回答.这里是与这两个常数混淆的人的描述.
CFBundleDisplayName
(字符串 - 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.
Saf*_*afa 28
根据Apple的说法,
显示的应用程序名称
on the iPhone home screen
来自您的iOS应用程序Info.plist中的CFBundleDisplayName(或"捆绑显示名称"作为Xcode中的人类可读字符串)条目同样,你在看到应用程序名称
WatchKit app's launch screen
和notifications
来自您的WatchKit应用程序的Info.plist的CFBundleDisplayName
The Apple Watch app on the iPhone
当前使用iOS应用程序的包名称(不是包显示名称),该名称由其Info.plist的CFBundleName(或"Bundle name")条目指定
您可以通过点击此处查看其他相关屏幕截图并在Apple Developer页面上获取更多信息.
小智 14
根据我的经验:
Rap*_*tor 10
仅当CFBundleDisplayName
未指定Bundle Display Name()时,Bundle Name(CFBundleName
)的值将用于显示在App Icon下.
请注意,它CFBundleDisplayName
是可本地化的,它应该用于设置iOS Springboard菜单和Mac OS X Applications/Mission Control中显示的App名称.
简而言之,请勿触摸CFBundleName
并将其值保留为默认值,即${PRODUCT_NAME}
.