2011-02-14 13 views
17

Estoy a punto de publicar una nueva versión de una aplicación en Market. Para evitar cualquier posible problema una vez que se haya enviado al mercado y se haya notificado a las personas sobre una actualización, me gustaría simular ese proceso en mi teléfono con la .apk de la nueva versión de la aplicación que publicaré.Cómo probar lo que sucederá cuando publique una actualización de su aplicación en Market

Por ejemplo, tiene una actualización del DB de SQLite que está utilizando.

Lo más cerca que puedo encontrar es usar el Android Debug Bridge (ADB) usando el comando: adb install C:\myApplication.apk con mi teléfono conectado al PC a través del cable USB. (el parámetro representa el lugar donde esté su archivo apk en su PC).

Cuando hago esto, si la aplicación ya está instalada en mi teléfono, me sale un mensaje de error:

Fallo Fallo en la instalación ya existe.

Si elimino la aplicación existente de mi teléfono, el comando adb install funciona bien. Por lo tanto, parece que esto solo se puede usar para instalar una aplicación que no existe actualmente en su teléfono.

¿Hay alguna forma de de simular el proceso de actualización? Sería bueno si hubiera un comando adb update, pero no veo eso.

Respuesta

1

Creo que su error es porque tiene el mercado firmó versión instalada y su tratando de instalar una versión de depuración firmado. Si lo firmas con tu clave de mercado debería instalarlo bien.

+0

Esto no es verdad. Si la aplicación ya está instalada, sin importar la clave de firma, 'adb install' requiere la opción' -r' para instalarse correctamente. Y si la clave de firma es incorrecta, se obtiene el error INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES [como se menciona en el comentario de @charlest a continuación] (http://stackoverflow.com/questions/4993946/how-to-test-what-will-happen-when- you-publish-a-update-to-your-app-to-the-marke # comment5580744_4994089). –

2

Lo más parecido que creo que puede obtener es poner el APK en alguna parte, y descargarlo en un teléfono. Eso es lo más cerca que puede llegar a las situaciones reales del mercado, con la única diferencia de que necesita agregar la opción de "fuentes desconocidas".

(en una nota al margen: se puede obtener un error al instalar un APK con el mismo nombre-paquete, sino una firma diferente.)

31

Trate de usar la opción -r a adb install:

adb install [ -l] [-r] [-s] - inserte este archivo de paquete en el dispositivo e instálelo ('-l' significa bloqueo de avance de la aplicación) ('-r' significa reinstalar la aplicación, manteniendo su data) ('-s' significa instalar en la tarjeta SD en lugar de almacenamiento interno)

+0

Gracias! Eso lo cuidó. Estaba viendo las opciones para instalar en el sitio de Google: ejecutar el comando real en mi PC mostró las opciones que mencionaste. Una cosa que sí encontré: si intentas reemplazarla por una .apk que fue firmada con un keystore diferente, obtendrás el mensaje de error: INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES. Entonces, la única restricción es que debe reemplazarla por una .apk firmada con el mismo certificado. – charlest

+0

@charlest Genial. Lo de la firma es una medida de seguridad. Básicamente significa mantener versiones antiguas para cargar en el dispositivo y luego (incremental) las pruebas de actualización. –

+1

Esto es correcto, ya que la opción '-r' conserva el archivo de base de datos para la aplicación.Cuando la aplicación actualizada se ejecuta por primera vez, el asistente de la base de datos toma el control y llama a 'onUpdate()' según sea necesario para la prueba. –

Cuestiones relacionadas