Algunos usuarios (pero no todos) reciben "El archivo del paquete no se firmó correctamente" al descargar mi aplicación desde Google Play

He enviado y publicado una aplicación en Google Play Store. No recibí ningún error cuando subí mi binario. Ahora, estoy recibiendo informes de algunos (no todos) los clientes diciendo que están recibiendo el siguiente error al instalar nuestra aplicación:

"El archivo de paquete no se firmó correctamente"

Cuando trato de replicar este error yo mismo (usando un Nexus 7 restablecer a los ajustes de fábrica), sin embargo, todo va sin problemas.

Esto parece ser similar al tema descrito en esta pregunta, pero la respuesta aceptada no parece aplicarse en este caso.

He visto sugerencias para usar JDK 6 en lugar de JDK 7, pero respuestas como ésta me llevan a creer que esta solución es para situaciones en las que el keystore fue creado en una versión anterior de Java. Además, me preocupa cómo renunciar a una nueva versión con una versión anterior de Java afectará a nuestros clientes que no han tenido problemas con la instalación inicial.

  1. ¿Tiene sentido que la versión de JDK utilizada para firmar la aplicación sólo afecte negativamente a algunos clientes? Si lo hace, ¿qué factores podrían determinar en qué dispositivos se produce el problema?
  2. Cambiar la forma en que firmo el binario (pero no el certificado) tiene algún impacto negativo en nuestra capacidad de actualizar la aplicación para los usuarios que no tienen actualmente este problema
  3. Si la versión de Java que usé para firmar el APK no es el problema, ¿qué otra cosa podría causar un error como este?

Editar: Todos los usuarios con este problema (o sin él), están ejecutando Android 4.0 o posterior. La aplicación no admite versiones anteriores de Android.

Después de leer un poco voy a tomar una puñalada, es necesario especificar el algoritmo explícitamente para el jarsigner JDK7 ..

Agregue esto al archivo build.xml de su proyecto:

<presetdef name="signjar"> <signjar sigalg="MD5withRSA" digestalg="SHA1" /> </presetdef> 

Después de un poco más de lectura parece que se trata del algoritmo predeterminado utilizado en el dispositivo para el resumen, que parece variar de dispositivo a dispositivo con el algoritmo común disponible en todos los dispositivos que es el especificado en el xml anterior. Por eso falla en algunos dispositivos, otros usuarios han experimentado lo mismo, por ejemplo: "Paquete no firmado correctamente" aparece para algunos usuarios

Esta entrada de blog también contiene información interesante sobre la firma de apk: firma de código de Android

Ahora estoy bastante seguro de que establecer explícitamente el algoritmo especificado para Android para la firma no afectará a sus clientes que ya han instalado y espero que resolverá su problema para los otros clientes.

  • ¿Es posible impedir que la aplicación de Google Play cree un acceso directo de mi aplicación en la instalación?
  • Ciclo de vida de la aplicación Android cuando la aplicación está siendo actualizada por Play Store
  • No se puede subir un nuevo archivo APK a Android Play Store
  • Acerca del seguimiento de aplicaciones de Google Play
  • ¿Qué es el "Feature Graphic" para las aplicaciones de Android?
  • En la facturación de aplicaciones en android
  • Viewpager + FragmentpagerAdapet + Fragmentos + ListView = aplicación insanamente lenta
  • Cómo solicitar información de la aplicación de Google Play Store sin autenticación
  • VersionCode vs versionName en el manifiesto de Android
  • Tienda de reproducción - estado Listo para publicar
  • Facturación en la aplicación de Android, compras múltiples del mismo artículo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.