2011-07-21 14 views

Respuesta

7

Si me pregunta si quiere saber cuándo se actualiza la aplicación a través de la tienda de aplicaciones, no conozco dicho método.

Un enfoque hackie de hacer esto es guardar la versión actual de la aplicación para NSUserDefaults, a continuación, comprobar si la versión de la aplicación NSUserDefaults es igual a la versión actual aplicación.

Por ejemplo:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

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

    if ([defaults objectForKey:@"savedAppVersionKey"] != nil) { 
     //key exists 

     NSString *savedAppVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedAppVersionKey"]; 

     if ([currentAppVersion isEqualToString:savedAppVersion]) { 
      //still running the same app version 
     } 
     else { 
      //the app version changed from the last launch 
     } 

    } 
    else { 
     //first run, set the key & synchronize 
     [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:@"savedAppVersionKey"]; 

     [[NSUserDefaults standardUserDefaults] synchronize] 
    } 

} 

No he probado el código, pero debería funcionar.

Gracias,

-David

+0

Esto es lo que estoy haciendo actualmente. Pero estoy almacenando la versión de la aplicación en la base de datos. – conor

+1

el código anterior nunca almacena la 'currentAppVersion', excepto en la primera ejecución. una solución fácil sería eliminar el resto y simplemente establecer la versión y sincronizar todo el tiempo. – joshpaul

3

En lugar de ejecutar su aplicación de Xcode, puede arrastrar la aplicación a tu iTunes. Después de esto, la aplicación será instalada por iTunes cuando se sincronice (necesitará tener el perfil de aprovisionamiento instalado, pero si puede ejecutar a través de Xcode, ya lo tiene). A continuación, puede arrastrar la versión más reciente de la aplicación a iTunes y actualizarla haciendo una sincronización (asegúrese de cambiar la versión de la aplicación o iTunes no actualizará la aplicación).

No sé si será exacly el mismo proceso que se producen en la actualización, pero yo creo que es lo mejor que podemos hacer para probarlo.

0

El mejor enfoque sería crear un archivo IPA con el perfil de suministro de desarrollo de la versión anterior de la aplicación. Algunos han mencionado que puedes sincronizar este archivo con iTunes. En realidad esa no es la manera más fácil; utilice el organizador de X-Code para arrastrar el archivo ipa a su dispositivo en "Dispositivos"> [Nombre de su dispositivo]> "Aplicaciones". Esto instalará la versión anterior de tu aplicación instantáneamente.

En este punto, puede ser importante para iniciar su aplicación en este punto y recrear cualquier situación que usted está tratando de recrear con exactitud. (Nota: el organizador de X-Code le permite transferir archivos dentro y fuera de su Sandbox usando las pestañas "Descargar" y "Cargar" en la parte inferior del Organizador en la pestaña Dispositivos, por lo que puede no ser necesario realizar todo el estado lógica de creación de forma manual.)

Una vez instalada la aplicación anterior y en el estado que está intentando recrear, puede iniciar la nueva aplicación encima de la anterior o desplegar una nueva ipa desde Test-Flight/X- Code Organizer.

En particular, cuando el lanzamiento desde el depurador, parece como si la ubicación paquete/caja de arena no lo hace/no puede cambiar; cuando se actualiza desde Test-Flight lo hace. Actualmente no tengo claro si esa ubicación puede cambiar con una actualización real de la aplicación de iTunes, pero definitivamente es algo que querrá explicar en las pruebas.

Cuestiones relacionadas