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 publico ...
¿Hay alguna manera en el objetivo-C para averiguar cuál es la versión de mi aplicación?
Respuestas:
Como describo aquí , utilizo un script para reescribir 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. Entonces puedo acceder a la versión y al número de revisión usando algo similar a lo siguiente:
que creará una cadena con el formato "Versión 1.0 (51)".
fuente
CFBundleShortVersionString
lo que normalmente querrías para 'versión' yCFBundleVersion
para Número de compilación.[NSString stringWithFormat:@"Version: %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]]
Sobre la base de la respuesta de Brad Larson, si tiene información de versión mayor y menor almacenada en la lista de información (como hice en un proyecto en particular), esto funcionó bien para mí:
Ahora, acelerar una versión menor manualmente puede ser una molestia, por lo que es ideal usar un truco de número de revisión del repositorio de origen. Si no lo ha atado (como no lo hice), el fragmento anterior puede ser útil. También saca el nombre para mostrar de la aplicación.
fuente
Versión rápida para ambos por separado:
Swift 3
Swift 2
Está incluido en este repositorio, échale un vistazo:
https://github.com/goktugyil/EZSwiftExtensions
fuente
Esto es lo que hice en mi solicitud
Esperemos que esta simple respuesta ayude a alguien ...
fuente
Puede especificar la
CFBundleShortVersionString
cadena en su plist.info y leerla mediante programación utilizando la API proporcionada .fuente
Hay dos cosas: la versión de compilación y la versión de la aplicación.
Para obtener la versión de la aplicación:
Para obtener la versión de compilación:
fuente
objectForInfoDictionaryKey:
lugar deinfoDictionary] objectForKey:
porque el primero devuelve el valor localizado (si hay uno). Probablemente no haga la diferencia aquí;)fuente
Una forma sucinta de obtener una cadena de versión en formato XYZ es:
O, por solo XY:
Ambos fragmentos devuelven cadenas que asignaría a la propiedad de texto de su objeto de etiqueta, por ejemplo
fuente
Puedes intentar usar el diccionario como: -
fuente
Lea el archivo info.plist de su aplicación y obtenga el valor de la clave CFBundleShortVersionString. Leer info.plist le dará un objeto NSDictionary
fuente
Puede usar 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 interfaz de usuario preferido.
fuente
Swift 5:
Hay dos cosas: versión de la aplicación y versión de compilación
Para obtener la versión de la aplicación:
Para obtener la versión de compilación:
Gracias
@Brad Larson♦
muchofuente
Si necesita una combinación de la versión y el número de compilación , aquí hay una forma corta de usar Swift 3 :
Agregue un
as! String
al final de la líneaappVersion
obuildNum
para obtener solo esa parte como unString
objeto. Sin embargo, no hay necesidad de eso si estás buscando el completoversionInfo
.¡Espero que esto ayude!
fuente
Basado en la respuesta de @rajat chauhan sin un reparto forzado
String
.fuente
Esto es algo bueno de manejar con un sistema de control de revisión. De esa manera, cuando recibe un informe de error de un usuario, puede verificar 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 obtenga el número de revisión actual de su código y actualice un archivo dentro de su proyecto (generalmente con alguna forma 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 del error, o puede mostrarlo en una página "Acerca de".
fuente
Puedes probar este método:
fuente