puedo para como apple actualizar iphone cocoa cocoa-touch xcode

iphone - para - ¿Cómo mostrar la versión actual del proyecto de mi aplicación al usuario?



mi id de apple (6)

Esos elementos en Build Info no están disponibles para su aplicación construida. Son marcadores de posición que posiblemente podría incluir en su aplicación. Lo que está en su aplicación es cualquier cosa que coloque en, por ejemplo, la carpeta de Recursos de su aplicación, como cualquier archivo de texto, listas, o una buena imagen de su ingeniero de versiones.

Ahora, puede colocar algunos de los elementos en la ventana Información de construcción en un info.plist, usando identificadores especiales, como $ {VERSION_INFO_PREFIX} u otro token. Los tokens están disponibles si hace clic en cualquiera de los elementos en el lado izquierdo en la ventana que ha incluido arriba. Por ejemplo, haga clic en la palabra "Versión actual del proyecto" y copie el token que ve en la parte inferior, "CURRENT_PROJECT_VERSION". Luego ve a tu archivo plist y agrega una entrada. Dale el nombre que quieras o "Versión actual del proyecto". Pega en $ {CURRENT_PROJECT_VERSION} en el lado derecho. Ahora ese valor está disponible para usted desde su aplicación, mediante programación. Por supuesto, alguien ahora tiene que ingresar ese valor en el lugar apropiado, ya sea en la ventana Información de construcción o en otro lugar. Simplemente podría ser más fácil simplemente administrar esto y campos como este en el archivo info.plist. Depende de ti cómo te gustaría manejar estas cosas.

Aquí es cómo obtengo la información de la versión de mi info.plist:

+ (NSString *) getAppVersionNumber; { NSString *myVersion, *buildNum, *versText; myVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; buildNum = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey]; if (myVersion) { if (buildNum) versText = [NSString stringWithFormat:@"Version: %@ (%@)", myVersion, buildNum]; else versText = [NSString stringWithFormat:@"Version: %@", myVersion]; } else if (buildNum) versText = [NSString stringWithFormat:@"Version: %@", buildNum]; NSLog(versText); return versText; }

Me gustaría agregar la versión actual a la sección "sobre" de mi aplicación. Como se ve en esta captura de pantalla adjunta, Apple ofrece control de versiones.

¿Cómo se muestran estas configuraciones en su aplicación?

Captura de pantalla de Target ''myApp'' Info http://i35.tinypic.com/30c7ith.jpg


Mire en su archivo Info.plist que debería tener claves como CFBundleVersion y CFBundleShortVersionString


NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleVersion"];

me devuelve siempre el mismo valor (versión inicial) incluso si cambio la versión de la configuración del proyecto pero.

NSString * appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

Hace el truco.


Para los perezosos aquí está la versión rápida:

NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString")!


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


Después de más búsquedas y pruebas, encontré la solución yo mismo.

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSLog(@"%i Keys: %@", [infoDictionary count], [[infoDictionary allKeys] componentsJoinedByString: @" ,"]);

Este snipplet me dio el siguiente resultado:

20 teclas: NSBundleResolvedPath, CFBundleVersion, NSBundleInitialPath, CFBundleIdentifier, NSMainNibFile, CFBundleIconFile, CFBundleInfoPlistURL, CFBundleExecutable, DTSDKName, UIStatusBarStyle, CFBundleDevelopmentRegion, DTPlatformName, CFBundleInfoDictionaryVersion, CFBundleSupportedPlatforms, CFBundleExecutablePath, CFBundleDisplayName, LSRequiresIPhoneOS, CFBundlePackageType, CFBundleSignature, CFBundleName

Entonces la solución es tan simple como:

NSString *version =[[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleVersion"];

Sin embargo, esta no es la versión actual del proyecto como se ve en la captura de pantalla, sino la versión del paquete del archivo plist.