¿Cómo puedo obtener una cadena del Identificador de paquete mediante programación desde mi aplicación?
¿Cómo puedo obtener una cadena del Identificador de paquete mediante programación desde mi aplicación?
Respuestas:
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
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Bundle.main.bundleIdentifier!
[[NSBundle mainBundle] bundleIdentifier];
( documentación )
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
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"));
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
}
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.