Comment puis-je obtenir une chaîne de l'identifiant de bundle par programme à partir de mon application?
Comment puis-je obtenir une chaîne de l'identifiant de bundle par programme à partir de mon application?
Réponses:
Objectif 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];
( documentation )
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Vous aurez peut-être besoin de l'approche Core Foundation pour obtenir la valeur. L'exemple ARC est le suivant:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
J'utilise ces macros pour le raccourcir:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
donc je peux comparer comme ceci:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
Si vous essayez de l'obtenir par programme, vous pouvez utiliser la ligne de code ci-dessous:
Objectif c:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
Mis à jour pour la dernière version rapide Il fonctionnera pour les applications iOS et Mac.