Paket Kimliğini program aracılığıyla edinme


229

Uygulamamdan bir paket Paket Tanımlayıcısını program aracılığıyla nasıl edinebilirim?

Yanıtlar:


455

Objective-C

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

Hızlı 1.2

let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier

Swift 3.0

let bundleIdentifier = Bundle.main.bundleIdentifier

Xamarin.iOS

var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier

10
Bu cevap yalnızca iOS ile sınırlı değil. Mac uygulamaları için de çalışır.
Jonny

9
Swift'te, kullanınlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber

1
(Bu yorumu silebilirsiniz) ama cevabı okuma hissini seviyorum, sonra yorumda, @Jonny s ve Tim gibi bir şey görüyorum (bunu başka bir bütün cevapta görebiliyor olsanız da), yine de alakalı ve kullanışlı. Harika topluluk üyeleri için teşekkürler.
haxpor

2
Swift3:Bundle.main.bundleIdentifier!
Sebastian Roth


2

Değeri elde etmek için Core Foundation yaklaşımına ihtiyacınız olabilir. ARC örneği aşağıdaki gibidir:

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

2

Paket tanımlayıcısını Swift 3.0'da programlı olarak almak için :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier

0

Bu makroları çok daha kısa yapmak için kullanıyorum:

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

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

böylece sadece şöyle karşılaştırabilirsiniz:

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

0

Programlı olarak almaya çalışıyorsanız, aşağıdaki kod satırını kullanabilirsiniz:

Objective-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

En son hızlı için güncellendi Hem iOS hem de Mac uygulamaları için çalışacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.