Reputation: 2824
How can I obtain a string of the Bundle Identifier programmatically from within my App?
Upvotes: 240
Views: 85692
Reputation: 5712
f you are trying to get it programmatically , you can use below line of code :
Objective-C:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0 :
let bundleIdentifier = Bundle.main.bundleIdentifier
Updated for latest swift It will work for both iOS and Mac apps.
Upvotes: 1
Reputation: 11335
Objective-C
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 1.2
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Swift 3.0
let bundleIdentifier = Bundle.main.bundleIdentifier
Xamarin.iOS
var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier
Upvotes: 471
Reputation: 6526
To get the bundle identifier programmatically in Swift 3.0:
Swift 3.0
let bundle = Bundle.main.bundleIdentifier
Upvotes: 3
Reputation: 21571
I use these macros to make it much shorter:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
so I can just compare like this:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
Upvotes: 0
Reputation: 37
You may need Core Foundation approach to get the value. ARC example is following:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
Upvotes: 3