Получить идентификатор пакета программно - PullRequest
214 голосов
/ 16 января 2012

Как программно получить строку идентификатора пакета из моего приложения?

Ответы [ 6 ]

422 голосов
/ 16 января 2012

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
49 голосов
/ 16 января 2012
[[NSBundle mainBundle] bundleIdentifier];

( документация )

2 голосов
/ 15 ноября 2016

Для получения идентификатора пакета программным путем в Swift 3.0 :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier
2 голосов
/ 14 июля 2015

Вам может понадобиться подход Core Foundation, чтобы получить значение. Пример ARC следующий:

NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
                                                                     (const void *)(@"CFBundleIdentifier"));
0 голосов
/ 10 октября 2016

Я использую эти макросы, чтобы сделать его намного короче:

#define BUNDLEID    [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]

#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]

, поэтому я могу просто сравнить следующим образом:

if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
    //do this
}
0 голосов
/ 09 сентября 2016

Если вы пытаетесь получить его программно, вы можете использовать следующую строку кода:

Objective-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Обновлено для последней версии swift. Будет работать как для iOS, так и для Mac приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...