2011-01-06 16 views
9

Durante la actualización de mi aplicación de Android, cambié el nombre del paquete. Pero el mercado de Android no permite cargar la aplicación de nombre de paquete cambiado como una actualización. Si subo la aplicación como una nueva aplicación, ¿tendrá el usuario dos aplicaciones en su dispositivo? ¿Cómo puedo asegurarme de que el usuario no tenga que volver a descargar la aplicación desde cero sin revertir el cambio del nombre de mi paquete?Cambiar el nombre del paquete de una aplicación de Android actualizada

Respuesta

12

dos paquetes = dos aplicaciones diferentes en el mercado. Una vez que cargue una aplicación, su paquete debe ser el mismo. Además, la clave debería ser la misma.

+0

He utilizado la misma clave, pero el nombre del paquete es diferente para mi primera aplicación cargada. – yogsma

+0

no puede cambiar el nombre del paquete principal. Si lo haces, no se puede tratar como la misma aplicación. –

+0

No estoy seguro de por qué tuvo que cambiar el paquete después de que publicó la aplicación. Debe reconsiderar su decisión de cambiar el nombre del paquete. Si no es posible, entonces olvide (y ponga un enlace a la nueva aplicación en la descripción del mercado) la aplicación anterior. –

10

El mercado de Android solo se preocupa por el nombre del paquete en su manifiesto, no el nombre real de los paquetes en la fuente.

Se podría tratar de dar el antiguo nombre del paquete en el atributo de manifiesto, a continuación, para actividades dan el nuevo nombre de paquete en lugar de relativa (es decir .MainActivity)

De esta manera:

<manifest package="your.old.package" ...> 
    ... 
    <application android:name="your.new.package.MainActivity" ...> 

podría trabajar ..

Planeo servir dos versiones de mi aplicación (paga/gratis) de esta manera y usando el mismo proyecto y código.

+0

¡¡¡interesante !! Voy a probar en mi próxima aplicación. – yogsma

+0

Tiene razón, Tapirboy. A Android no le importa el atributo de nombre que coloque en sus etiquetas de Actividad; solo le importa el atributo de paquete de su etiqueta de manifestación, en lo que respecta a la determinación de la identidad de su aplicación. Si se modifica el atributo package de la etiqueta manifest, Android considerará que la aplicación con ese cambio es una aplicación completamente diferente. – Carl

+1

Recuerdo vagamente algunos problemas con el complemento Eclipse si el paquete del manifiesto y el nombre de la aplicación son diferentes. Esto ya no puede ser un problema, pero definitivamente tuve que luchar con Eclipse cuando uso este enfoque. Eso fue hace más de un año sin embargo. – Jeff

0

Si cambias el nombre del paquete, se trata como una aplicación separada, no solo en el mercado, pero los apk en general solo 'reemplazarán' el mismo nombre de paquete (y solo si ambos están firmados con la misma clave)

Aunque es posible realizar la transición a una nueva clave mediante la firma de un paquete intermedio with both keys, actualmente no existe una forma sencilla de eliminar el nombre del paquete.

Lo mejor que puede hacerse es la siguiente:

  • Nueva versión apk se firmó con la misma clave, pero tiene otro nombre de paquete.
  • Cuando se instala, la nueva aplicación arregla usar el shared_prefs con el nombre del paquete anterior.
  • Los datos se copian en el nuevo nombre del paquete.
  • La nueva versión solicita que se elimine la versión anterior y el usuario ve el cuadro de diálogo de desinstalación.

datos Nota aplicación generalmente se mantiene aquí:

/data/data/pac.kage.name/ 

no he probado esto, así que no puedo dar más detalles todavía. Usted también podría estar interesado en mi request for a seamless way of transitioning the package name.

Cuestiones relacionadas