Here is a good question:
Bundle Name, Executable Name, Product Name...anything else?
but I just wonder about the difference between \"bundle display name\"
According to Apple,
The app name displayed
on the iPhone home screen
comes from the CFBundleDisplayName (or "Bundle display name" as the human-readable string in Xcode) entry of your iOS app’s Info.plistSimilarly, the app name you see in your
WatchKit app's launch screen
andnotifications
comes from the CFBundleDisplayName of your WatchKit app's Info.plist
The Apple Watch app on the iPhone
currently uses the bundle name (not the bundle display name) of your iOS app, which is specified by the CFBundleName (or "Bundle name") entry of its Info.plist
You can see other related screenshots and reach more info at Apple Developer page by clicking here.
From my experience:
thanks for Wevah's answer. here is the descriptions for people who confused with this two constants.
CFBundleDisplayName
(String - iOS, Mac OS X) specifies the display name of the bundle. If you support localized names for your bundle, include this key in both your information property list file and in the InfoPlist.strings files of your language subdirectories. If you localize this key, you should also include a localized version of the CFBundleName key.
If you do not intend to localize your bundle, do not include this key in your Info.plist file. Inclusion of this key does not affect the display of the bundle name but does incur a performance penalty to search for localized versions of this key.
Before displaying a localized name for your bundle, the Finder compares the value of this key against the actual name of your bundle in the file system. If the two names match, the Finder proceeds to display the localized name from the appropriate InfoPlist.strings file of your bundle. If the names do not match, the Finder displays the file-system name.
For more information about display names in Mac OS X, see File System Overview.
CFBundleName
(String - iOS, Mac OS X) identifies the short name of the bundle. This name should be less than 16 characters long and be suitable for displaying in the menu bar and the application’s Info window. You can include this key in the InfoPlist.strings file of an appropriate .lproj subdirectory to provide localized values for it. If you localize this key, you should also include the key CFBundleDisplayName.
Only if Bundle Display Name (CFBundleDisplayName
) is not specified, value of Bundle Name (CFBundleName
) will be used to displayed under App Icon.
Please note that CFBundleDisplayName
is localizable, and it should be used to set the App name shown in iOS Springboard menu & Mac OS X Applications / Mission Control.
In short, don't touch CFBundleName
and leave its value as default, i.e. ${PRODUCT_NAME}
.
I don't think any of the other answers concisely answers the question.
CFBundleDisplayName
- displayed: below icon. According to docs, should be localized, but only if the app itself is localized, otherwise there will be some kind of penalty (if this is true in reality I cannot say)
CFBundleName
- displayed: I have no idea. Docs suggest that it will be used in lists thus recommended max 16 characters, but for instance the Settings→General→Usage list of apps uses CFBundleDisplayName
really. To date I have never figured out where exactly this one is used.
Oh, this is for iOS apps, can't speak for other OSes.
Note that the bundle name is also used as prefix for HTTP user-agent.