Как я могу получить строку идентификатора Bundle программно из моего приложения?
Получить программный идентификатор Bundle Identifier
Ответ 1
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
Ответ 2
[[NSBundle mainBundle] bundleIdentifier];
Ответ 3
Для получения значения может потребоваться подход Core Foundation. Пример ARC:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
Ответ 4
Чтобы получить идентификатор пакета программно в Swift 3.0:
Swift 3.0
let bundle = Bundle.main.bundleIdentifier
Ответ 5
Если вы пытаетесь получить его программно, вы можете использовать следующую строку кода:
Objective-C:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
Обновлено для последней версии Swift. Будет работать как для iOS, так и для Mac приложений.
Ответ 6
Я использую эти макросы, чтобы сделать его намного короче:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
поэтому я могу просто сравнить вот так:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}