If the application name under the icon on the home screen is \"My Awesome App\" how do you get that string within the application at runtime?
let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
#include <stdlib.h>
// work for iOS and MacOSX and ~23 times faster than get name from bundle
NSString *app = [NSString stringWithUTF8String:getprogname()];
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName")
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName")
The following is from Apple's documentation on Core Foundation Keys
CFBundleName, “Bundle name”, The short name of the bundle; not intended to be seen by the user. See CFBundleName for details. (Recommended, Localizable)
CFBundleDisplayName, “Bundle display name”, The user-visible name of the bundle; used by Siri and visible on the Home screen in iOS. See CFBundleDisplayName for details. (Required, Localizable)
Attention:
If you do a localizations
in your app, you should use the blew code to get the true localized display name:
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? ""
rather than:
Bundle.main.object(forInfoDictionaryKey: kCFBundleNameKey as String) as? String
For Xamarin.iOS use:
return ((NSString)NSBundle.MainBundle.InfoDictionary["CFBundleName"]).ToString();