Wie kann ich programmgesteuert eine Zeichenfolge der Bundle-ID in meiner App abrufen?
Wie kann ich programmgesteuert eine Zeichenfolge der Bundle-ID in meiner App abrufen?
Antworten:
Ziel 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
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Bundle.main.bundleIdentifier!
[[NSBundle mainBundle] bundleIdentifier];
( Dokumentation )
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Möglicherweise benötigen Sie den Core Foundation-Ansatz, um den Wert zu erhalten. Das ARC-Beispiel lautet wie folgt:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
Ich benutze diese Makros, um es viel kürzer zu machen:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
also kann ich einfach so vergleichen:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
Wenn Sie versuchen, es programmgesteuert abzurufen, können Sie die folgende Codezeile verwenden:
Ziel c:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
Aktualisiert für die neueste Version Es funktioniert sowohl für iOS- als auch für Mac-Apps.