Obtenir un identifiant de bundle par programme


229

Comment puis-je obtenir une chaîne de l'identifiant de bundle par programme à partir de mon application?

Réponses:


454

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

10
Cette réponse n'est pas limitée à iOS. Cela fonctionne aussi pour les applications Mac.
Jonny

9
Dans Swift, utilisezlet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber

1
(vous pouvez supprimer ce commentaire) mais j'aime le sentiment de lire la réponse puis dans le commentaire, voir quelque chose comme @Jonny s et Tim (bien que vous puissiez le voir dans une autre réponse entière), il renvoie à autre chose qui est toujours pertinent et utile. Merci pour les gars formidables de la communauté.
haxpor

2
Swift3:Bundle.main.bundleIdentifier!
Sebastian Roth


2

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"));

2

Pour obtenir l'identifiant de bundle par programme dans Swift 3.0 :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier

0

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
}

0

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.