Obtenga el identificador de paquete mediante programación

229

¿Cómo puedo obtener una cadena del Identificador de paquete mediante programación desde mi aplicación?

usuario973984
fuente

Respuestas:

454

C objetivo

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
peko
fuente
10
Esta respuesta no se limita a iOS. Funciona también para aplicaciones Mac.
Jonny
99
En Swift, uselet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber
1
(puedes eliminar este comentario) pero me encanta la sensación de leer la respuesta y luego en el comentario, ver algo como @Jonny sy Tim (aunque puedes ver esto en otra respuesta completa), se vincula a algo más que aún es relevante y útil. Gracias por la gran comunidad chicos.
haxpor
2
Swift3:Bundle.main.bundleIdentifier!
Sebastian Roth
49
[[NSBundle mainBundle] bundleIdentifier];

( documentación )

Polvo oscuro
fuente
En Swift, uselet bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Tim Camber
2

Es posible que necesite un enfoque de Core Foundation para obtener el valor. El ejemplo de ARC es el siguiente:

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

Para obtener el identificador de paquete mediante programación en Swift 3.0 :

Swift 3.0

let bundle = Bundle.main.bundleIdentifier
Tal Zion
fuente
0

Utilizo estas macros para hacerlo mucho más corto:

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

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

así que puedo comparar así:

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

Si está intentando obtenerlo mediante programación, puede usar la siguiente línea de código:

C objetivo:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Actualizado para el último swift Funcionará tanto para aplicaciones iOS como Mac.

Aks
fuente