ultima puedo actualizar actualizacion iphone ios version

actualizacion - no puedo actualizar mi iphone 6



¿Cómo puede mi aplicación de iPhone detectar su propio número de versión? (14)

Esto es bueno manejarlo con un sistema de control de revisión. De esa manera, cuando recibe un informe de error de un usuario, puede revisar esa revisión de código y (con suerte) reproducir el error ejecutando exactamente el mismo código que el usuario.

La idea es que cada vez que realice una compilación, ejecutará un script que obtiene el número de revisión actual de su código y actualiza un archivo dentro de su proyecto (generalmente con algún tipo de reemplazo de token). Luego puede escribir una rutina de manejo de errores que siempre incluya el número de revisión en la salida de error, o puede mostrarlo en una página "Acerca de".

Estoy escribiendo una aplicación para iPhone. Ya se ha publicado, pero me gustaría agregar una función donde se muestre su número de versión.

Prefiero no tener que hacer esto manualmente con cada versión que libero ...

¿Hay alguna forma en object-C de averiguar cuál es la versión de mi aplicación?


Esto es lo que hice en mi aplicación.

NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

Esperemos que esta simple respuesta ayude a alguien ...


Hay dos cosas: compilar la versión y la versión de la aplicación.

  1. Para obtener la versión de la aplicación:

    NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

  2. Para obtener la versión Build:

    NSString *buildVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];


Lea el archivo info.plist de su aplicación y obtenga el valor para la clave CFBundleShortVersionString. Leer info.plist te dará un objeto NSDictionary


Puede especificar la cadena CFBundleShortVersionString en su plist.info y leerla mediante programación utilizando la API proporcionada .


Puede usar el infoDictionary que obtiene los detalles de la versión de info.plist de su aplicación. Este código funciona para swift 3. Simplemente llame a este método y muestre la versión en cualquier elemento de UI preferido.

Swift-3 func getVersion() -> String { let dictionary = Bundle.main.infoDictionary! let version = dictionary["CFBundleShortVersionString"] as! String let build = dictionary["CFBundleVersion"] as! String return "v/(version)./(build)" }


Puedes intentar usar el diccionario como: -

NSDictionary *infoDictionary = [[NSBundle mainBundle]infoDictionary]; NSString *buildVersion = infoDictionary[(NSString*)kCFBundleVersionKey]; NSString *bundleName = infoDictionary[(NSString *)kCFBundleNameKey]


Puedes probar este método:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];


Si necesita una combinación de la versión y el número de compilación , aquí tiene una forma breve de usar Swift 3 :

let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"]! let buildNum = Bundle.main.infoDictionary!["CFBundleVersion"]! let versionInfo = "/(appVersion) (build /(buildNum))" // versionInfo is now something like "2.3.0 (build 17)"

Añadir un as! String as! String hasta el final de la línea appVersion o buildNum para obtener solo esa parte como un objeto String . Sin embargo, no es necesario que busque la versionInfo completa.

¡Espero que esto ayude!


Sobre la base de la respuesta de Brad Larson, si tiene información de la versión principal y secundaria almacenada en la lista de información (como hice en un proyecto en particular), esto funcionó bien para mí:

- (NSString *)appNameAndVersionNumberDisplayString { NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSString *appDisplayName = [infoDictionary objectForKey:@"CFBundleDisplayName"]; NSString *majorVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"]; NSString *minorVersion = [infoDictionary objectForKey:@"CFBundleVersion"]; return [NSString stringWithFormat:@"%@, Version %@ (%@)", appDisplayName, majorVersion, minorVersion]; }

Ahora, acelerar una versión secundaria manualmente puede ser una molestia, por lo que usar un truco de números de revisión del repositorio fuente es ideal. Si no lo has vinculado (como no lo había hecho), el fragmento anterior puede ser útil. También saca el nombre para mostrar de la aplicación.


Una forma sucinta de obtener una cadena de versión en formato XYZ es:

[NSBundle mainBundle].infoDictionary[@"CFBundleVersion"]

O, solo por XY:

[NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]

Estos dos fragmentos de código devuelven cadenas que asignaría a la propiedad de texto de su objeto de etiqueta, por ejemplo,

myLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];


Versión Swift para ambos por separado:

Swift 3

let versionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String

Swift 2

let versionNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String let buildNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String

Está incluido en este repositorio, échale un vistazo:

https://github.com/goktugyil/EZSwiftExtensions


Como describo aquí , uso un script para volver a escribir un archivo de encabezado con mi número de revisión de Subversion actual. Ese número de revisión se almacena en la constante kRevisionNumber. Luego puedo acceder a la versión y al número de revisión utilizando algo similar a lo siguiente:

[NSString stringWithFormat:@"Version %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"], kRevisionNumber]

que creará una cadena con el formato "Versión 1.0 (51)".


// Syncs with App Store and Xcode Project Settings Input NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];