2011-12-11 9 views
7

Digamos que tengo una aplicación IOS existente vivir en la AppStore que es la versión 1.0aplicación para el iPhone actualización Vs nueva versión

Ahora hago algunos cambios en la aplicación y deseo enviar de vuelta.

¿Hay 2 maneras distintas de enviar? Al igual que todavía puedo conservar la versión como 1.0 y solo enviar la aplicación O Necesito crear una nueva versión 1.1 y luego enviarla?

¿Cuáles son las diferencias en el proceso?

También desde el extremo del cliente, ¿cómo funciona esto para usuarios nuevos/existentes?

Respuesta

10

Acabo de descubrir algo sobre las actualizaciones de la versión y la App Store. Justo ahora, estoy sufriendo problemas y bloqueos de usuarios debido a un comportamiento del sistema iOS que no puedo entender antes. Y, muy importante, iTunes, AppStore e iOS han modificado algunas reglas de actualización e instalación en las últimas versiones. Ahora, funciona de esta manera: - Cuando el usuario instala una nueva versión, todos los archivos del paquete se descargan y se copian en el paquete existente anterior, pero LOS ARCHIVOS O COMPONENTES ANTERIORES NO SE ELIMINAN (o no se eliminan todos). Entonces, el paquete final NO ES igual al conjunto de una nueva instalación de la nueva versión. - Por ejemplo, si un archivo xib/nib está localizado en diferentes idiomas para la nueva versión, el paquete actualizado incluirá ambas versiones: la que está en la carpeta raíz y la otra en cada carpeta localizada. El sistema, obviamente, usará el primero y solo una instalación nueva mostrará localizaciones para ese archivo. Una de mis aplicaciones muestra ese problema con MainWindow.xib y como hay algunas modificaciones en las referencias y las clases, las aplicaciones actualizadas fallan cada vez que intentas ejecutarlas, ya que está utilizando un objeto obsolet. Creé una nueva versión cambiando el nombre de los archivos xib/nib que se han localizado. Como MainWindow es uno de ellos, tengo que modificar la referencia en info.plist, por supuesto.

OK, sabiendo que puede crear una nueva versión con componentes completamente diferentes en el paquete que, si existen archivos de la versión anterior, la aplicación ofrece al usuario la opción de usarlos. Es decir, dos versiones de la aplicación en un solo icono y paquete. No es muy difícil de hacer.

PERO, lo más extraño es que creo que la nueva versión de iOS e iTunes no permiten las degradaciones. Intenté hacerlo pero no lo hice. Es decir, si instala una versión, por ejemplo 1.2, es imposible que AFAIK instale la última versión v1.1 en el dispositivo ni en iTunes -> "Aplicaciones". Por lo tanto, el paquete de versión doble continuará hasta la reinstalación de la aplicación.

+0

respuesta muy informativa Gaberiel :) ¿Podrías decirme la parte de sqlite? ¿Qué pasó exactamente si la versión anterior y la nueva tenían el mismo archivo sqlite llamado (digamos abc.sqlite1.0)? ¿Cómo se comportará mi nueva versión de la aplicación? ¿Anulará el viejo sqlite? O obtendré datos de ambos sqlite. –

+0

Sí. Todo lo que he dicho es sobre los elementos en el paquete de la aplicación. Si ambos tienen el mismo nombre en el paquete, el antiguo se reemplaza por el nuevo como se esperaba. – Gabriel

+0

@Gabriel: ¿Hay alguna forma de copiar datos de una base de datos anterior más nueva a otra antes de que se sustituya? – Mrunal

8

Necesita crear un nuevo número de versión, lo cual tiene sentido ya que esta es una nueva versión de su aplicación. Esto aparecerá como una actualización para sus clientes. No creo que pueda cargar un nuevo binario con la misma versión sin eliminar el anterior de la tienda.

Agregue una nueva versión en iTunes connect, luego actualice el número de versión en Xcode para que coincida y cree un nuevo archivo. Es bastante sencillo.

2

Siempre debe aumentar el número de versión de cualquier actualización de su aplicación.

Los usuarios verán una insignia en el icono del App Store en el dispositivo y en iTunes en su PC. Al entrar en la sección de actualizaciones, se mostrará una lista de su aplicación junto con la lista de cambios que ha proporcionado, y un botón para instalar la actualización. También pueden actualizar todas las aplicaciones a la vez.

1
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSLog(@"version is%@",version); 
+0

gracias, simplemente a dicho .. –

+0

Puede usar '[[[NSBundle mainBundle] infoDictionary] objectForKey: @" CFBundleShortVersionString "]' para manejar cambios de versiones como base de datos o claves nuevas/obsoletas en preferencias compartidas ('[NSUserDefaults standardUserDefaults] '). Aquí está el ejemplo: http://stackoverflow.com/a/23082595/2835520 – IgniteCoders

0

No es necesario abrir los números de versión para enviarlos por más tiempo.Abra Xcode, vaya a Ventana - Organizador - Archivos y distribuya una aplicación que haya creado correctamente.

Cuestiones relacionadas