iphone - Lea la versión de Info.plist
objective-c cocoa-touch (5)
Ahora en iOS 8 ambos campos son necesarios. Anteriormente funciona sin CFBundleShortVersionString
. Pero ahora es un campo plist requerido para enviar cualquier aplicación en la tienda de aplicaciones. Y se compara kCFBundleVersionKey
para cargar cada nueva compilación, que debe estar en orden incremental. Especialmente para construcciones TestFlight. Lo hago de esta manera,
NSString * version = nil;
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
if (!version) {
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
}
Quiero leer la información de la versión del paquete de Info.plist en mi código, preferiblemente como una cadena. ¿Cómo puedo hacer esto?
Puede leer su Info.plist como un diccionario con
[[NSBundle mainBundle] infoDictionary]
Y puede obtener fácilmente la versión en la clave CFBundleVersion
esa manera.
Finalmente, puedes obtener la versión con
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* version = [infoDict objectForKey:@"CFBundleVersion"];
Sé que ha pasado un tiempo desde la búsqueda y la respuesta.
Desde iOS8, la respuesta aceptada podría no funcionar.
Esta es la nueva forma de hacerlo ahora:
NSString *version = (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
para usuarios de Swift:
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") {
print("version is : /(version)")
}
para usuarios de Swift3:
if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") {
print("version is : /(version)")
}
Swift 3:
let appBuildNumber = Bundle.main.infoDictionary!["CFBundleVersion"] as! String
let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String