Dapatkan Bundle Identifier secara terprogram

229

Bagaimana saya bisa mendapatkan string Identifier Bundle secara terprogram dari dalam Aplikasi saya?

pengguna973984
sumber

Jawaban:

454

Objektif-C

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

Cepat 1.2

let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier

Swift 3.0

let bundleIdentifier = Bundle.main.bundleIdentifier

Xamarin.iOS

var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier
peko
sumber
10
Jawaban ini tidak terbatas pada iOS. Ini juga berfungsi untuk aplikasi Mac.
Jonny
9
Di Swift, gunakanlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber
1
(Anda dapat menghapus komentar ini) tetapi saya suka perasaan membaca jawaban kemudian di komentar, lihat sesuatu seperti @Jonny s dan Tim (meskipun Anda dapat melihat ini di seluruh jawaban lain), itu tautan ke sesuatu yang lain yang masih relevan dan berguna. Terima kasih untuk kawan-kawan komunitas yang hebat.
haxpor
2
Swift3:Bundle.main.bundleIdentifier!
Sebastian Roth
49
[[NSBundle mainBundle] bundleIdentifier];

( dokumentasi )

DarkDust
sumber
Di Swift, gunakanlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber
2

Anda mungkin perlu pendekatan Core Foundation untuk mendapatkan nilai. Contoh ARC adalah sebagai berikut:

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

Untuk mendapatkan pengenal bundel secara terprogram di Swift 3.0 :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier
Tal Zion
sumber
0

Saya menggunakan makro ini untuk membuatnya lebih pendek:

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

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

jadi saya bisa membandingkan seperti ini:

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

Jika Anda mencoba mendapatkannya secara terprogram, Anda dapat menggunakan kode di bawah ini:

Tujuan-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Diperbarui untuk swift terbaru Ini akan berfungsi untuk aplikasi iOS dan Mac.

Aks
sumber