Jak mogę programowo uzyskać ciąg identyfikatora pakietu z poziomu mojej aplikacji?
Jak mogę programowo uzyskać ciąg identyfikatora pakietu z poziomu mojej aplikacji?
Odpowiedzi:
Cel 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];
( dokumentacja )
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Możesz potrzebować podejścia Core Foundation, aby uzyskać wartość. Przykład ARC jest następujący:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
Używam tych makr, aby znacznie skrócić:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
więc mogę po prostu porównać w ten sposób:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
Jeśli próbujesz uzyskać to programowo, możesz użyć poniższego wiersza kodu:
Cel C:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
Zaktualizowany do najnowszej wersji szybkiej Będzie działał zarówno dla aplikacji na iOS, jak i na Maca.