Получить идентификатор пакета программно


229

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

Ответы:


455

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

10
Этот ответ не ограничивается iOS. Это работает и для приложений Mac.
Джонни

9
В Свифте используйтеlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Тим Кэмбер

1
(вы можете удалить этот комментарий), но мне нравится ощущение, что вы читаете ответ, а затем в комментарии видите что-то вроде @Jonny s и Tim (хотя вы можете увидеть это в другом полном ответе), оно ссылается на что-то еще, что все еще актуально и полезно. Спасибо за отличных ребят из сообщества.
haxpor

2
Swift3:Bundle.main.bundleIdentifier!
Себастьян Рот


2

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

NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
                                                                     (const void *)(@"CFBundleIdentifier"));

2

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

Swift 3.0

let bundle = Bundle.main.bundleIdentifier

0

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

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

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

так что я могу просто сравнить так:

if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
    //do this
}

0

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

Objective-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.