40media Getting an iPhone app's product name at runtime?

Getting an iPhone app's product name at runtime?

How can this be achieved? I would like to get the name so i can display it within an app, without having to change it in code each time i change a name, of course.

how to release uiview added as subview in scrollview?


Populate a UITableView with data
Try this.
Dynamically change url or WordPress theme if UserAgent is iPhone
    NSBundle *bundle = [NSBundle mainBundle];     NSDictionary *info = [bundle infoDictionary];     NSString *prodName = [info objectForKey:@"CFBundleDisplayName"]; 

inheritance in objective C

Program to change the phone numbers a call is redirected to if a mobile phone cannot be reached?


How to change UITabBar Selection color

iPhone SDK: GameKit and large files + connection lost
Good answers here.

remove every type of subview from uiscrollview?

I would add one thing though.
Rather than using @"CFBundleDisplayName", which has the potential to change in future, it's best to cast the string constant supplied in CFBundle.h like so:.
[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey]; 

Thus future-proofing your code..


According to Apple, using - objectForInfoDictionaryKey: directly on the NSBundle object is preferred:.
Use of this method is preferred over other access methods because it returns the localized value of a key when one is available..
Here's an example in Swift:.
let appName = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName") as! String // Or use key "CFBundleDisplayName" 


I had a problem when I localize my application name by using InfoPlist.strings, like.
CFBundleDisplayName = "My Localized App Name"; 
I could not obtain localized application name if I use infoDictionary.. In that case I used localizedInfoDirectory like below.

NSDictionary *locinfo = [bundle localizedInfoDictionary]; 


you can use the direct approach,. in .h file,.
IBOutlet UILabel *lableAppName;  labelAppName.text = [[[NSBundle mainBundle] infoDictionary]                         objectForKey:@"CFBundleDisplayName"]; 


This is just a swift update for this very old question.

I was in need of swift answer and it was kind of tricky(Unwrapping optionals) in swift syntax so sharing it here.
let productName = NSBundle.mainBundle().infoDictionary!["CFBundleName"]! 


For completeness, Swift 3.0 would be;.
let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as! String 


You could have all bundle details from this dictionary "info".

print this dictionary and get what you want..
NSBundle *bundle = [NSBundle mainBundle]; NSDictionary *info = [bundle infoDictionary]; 

74 out of 100 based on 39 user ratings 64 reviews