Quiero leer la información de la versión del paquete Info.plist en mi código, preferiblemente como una cadena. ¿Cómo puedo hacer esto?Lea versión de Info.plist
Respuesta
Puede leer su Info.plist como un diccionario con
[[NSBundle mainBundle] infoDictionary]
Y usted puede conseguir fácilmente la versión en el CFBundleVersion
clave de esa manera.
Por último, se puede obtener la versión con
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* version = [infoDict objectForKey:@"CFBundleVersion"];
Sé que ha pasado algún 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);
¿Tiene un enlace a por qué esto es así? –
Ahora en iOS 8 ambos campos son necesarios. Anteriormente funciona sin el 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];
}
Gracias .. ** version = [[NSBundle mainBundle] objectForInfoDictionaryKey: @ "CFBundleShortVersionString"]; ** trabajó para mí – swiftBoy
@RDC gracias. –
para los usuarios Swift:
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") {
print("version is : \(version)")
}
para los usuarios 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
- 1. Lea un número de versión de un archivo en configure.ac
- 2. iphone, localización, info.plist
- 3. Localización de teclas Info.plist anidados
- 4. Archivo Info.plist error "no such file"
- 5. Xcode no puede encontrar Info.plist o Prefix.pch al hacer una versión de lanzamiento
- 6. Valor Info.plist como C++ #define
- 7. Editando Info.plist posible mediante programación?
- 8. LEA instrucción?
- 9. Lea XElement de XmlReader
- 10. No encontraste info.plist en Xcode 4
- 11. No se pudo leer en Info.plist
- 12. Lea todos los parámetros de SYS_CONTEXT/USERENV
- 13. Carpeta recursiva de Python lea
- 14. Lea una clave de registro
- 15. Lea XML en VB.net
- 16. Lea XML usando Sencha
- 17. Lea XML en LINUX
- 18. Nombre de la tienda de aplicaciones e info.plist
- 19. Obtener fileSize de info.plist para evitar la piratería
- 20. Entradas de icono múltiples en el archivo Info.plist en Xcode
- 21. iOS: Cambio info.plist durante la fase de construcción
- 22. valor dependiente de configuración en el archivo Info.plist
- 23. Multithreading un archivo masivo lea
- 24. Lea la secuencia dos veces
- 25. Lea JSON desde la URL
- 26. Lea el archivo con Rhino
- 27. Diferencia entre LEA y MOVE.L?
- 28. Lea el pdf usando iText
- 29. Diferencia entre LEA y compensar
- 30. AGVTool nueva versión y qué versión no corresponden
perfecto. Eso es mucho más simple que todas las líneas de funciones de CF * que estaba usando ... Estaba seguro de que debe haber habido una forma rápida de obtener NSDictionary. Para – Stew
el número de versión, esto no tiene importancia, pero para otras teclas es posible que desee utilizar 'objectForInfoDictionaryKey:' en lugar, ya que devuelve el valor localizado si está disponible: '[[NSBundle mainBundle] objectForInfoDictionaryKey: @ "CFBundleDisplayName"]' – Zargony
Nota en Xcode4 si observa el panel de resumen del objetivo, verá los campos Versión y Compilación. 'CFBundleVersion' ha sido reutilizado para ser Build y la versión es' CFBundleShortVersionString'. – memmons