2011-10-31 18 views
35

Me pregunto si hay una manera de obtener su propia versión de la aplicación en el código después de ponerla en la pestaña "Resumen" en xCode. Una forma parece ser buscar Info.plist para la clave CFBundleVersion, pero ¿hay alguna otra manera más fácil y más conveniente?¿Cómo obtener su propia versión de aplicación de xcode?

+0

posible duplicado de [¿Cómo puede mi aplicación para iPhone detectar su propio número de versión?] (Http://stackoverflow.com/questions/458632/how-can-my-iphone-app-detect-its-own-version-number) –

Respuesta

113

Lo puede encontrar en el paquete principal. Creo que es algo así como:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 
+0

Sí, acabo de encontrar un blog (http://pigtailsoft.com/blog/?p=35) que dice eso. ¡Gracias de cualquier manera! Aceptará la respuesta en 6 minutos :) –

+11

Gracias, pero '@" CFBundleVersion "' devuelve la compilación, no la versión. Debería obtener este objeto: '@" CFBundleShortVersionString "' – IgniteCoders

12
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; 
27

Me suelen utilizar el número de compilación (CFBundleVersion) para realizar un seguimiento de, bueno, el número de generaciones, y el número de versión (CFBundleShortVersionString) para fines de marketing. Utilizo un script de ejecución para auto incrementar mi número de compilación y actualizo el número de versión manualmente antes de cada nueva versión. Así que si desea incluir el número de versión real de su código en comparación con el número de compilación, utilice esto:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 

o

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; 

Aquí está la secuencia de comandos de ejecución que se incrementa el número de compilación para cualquier persona interesada :

#!/bin/bash 

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}" 
2

para SWIFT:

Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") 
Cuestiones relacionadas