¿Por qué debo firmar mi APK de aplicación antes del lanzamiento?

¿Puede alguien informar por favor qué es la importancia exacta de firmar un APK antes de lanzar.

Desde la documentación de Android para firmar aplicaciones :

El sistema Android requiere que todas las aplicaciones instaladas estén firmadas digitalmente con un certificado cuya clave privada esté en manos del desarrollador de la aplicación. El sistema Android utiliza el certificado como un medio para identificar al autor de una aplicación y establecer relaciones de confianza entre las aplicaciones. El certificado no se utiliza para controlar qué aplicaciones puede instalar el usuario. El certificado no necesita estar firmado por una autoridad de certificación: es perfectamente permisible y típico que las aplicaciones de Android utilicen certificados autofirmados.

Los puntos importantes para entender sobre la firma de aplicaciones de Android son:

  • Todas las solicitudes deben ser firmadas. El sistema no instalará una aplicación en un emulador o un dispositivo si no está firmado.
  • Para probar y depurar su aplicación, las herramientas de construcción firman su aplicación con una clave de depuración especial creada por las herramientas de creación de SDK de Android.
  • Cuando esté listo para liberar su aplicación para los usuarios finales, debe firmarla con una clave privada adecuada. No puede publicar una aplicación que esté firmada con la clave de depuración generada por las herramientas de SDK.
  • Puede utilizar certificados autofirmados para firmar sus aplicaciones. No se necesita ninguna autoridad de certificación.
  • El sistema comprueba la fecha de caducidad del certificado de firmante sólo en el momento de la instalación. Si el certificado de firmante de una aplicación expira después de instalar la aplicación, la aplicación continuará funcionando normalmente.
  • Puede utilizar herramientas estándar – Keytool y Jarsigner – para generar claves y firmar sus archivos .apk de aplicaciones.
  • Después de firmar la aplicación para la liberación, le recomendamos que utilice la herramienta zipalign para optimizar el paquete APK final.

El sistema Android no instalará ni ejecutará una aplicación que no esté firmada correctamente. Esto se aplica dondequiera que se ejecute el sistema Android, ya sea en un dispositivo real o en el emulador. Por esta razón, debe configurar la firma para su aplicación antes de poder ejecutarla o depurarla en un emulador o dispositivo

¿Por qué significa:

Algunos aspectos de la firma de la aplicación pueden afectar la forma en que aborda el desarrollo de su aplicación, especialmente si está planeando liberar varias aplicaciones .

En general, la estrategia recomendada para todos los desarrolladores es firmar todas sus aplicaciones con el mismo certificado, a lo largo de la vida útil esperada de sus aplicaciones. Hay varias razones por las que debe hacerlo:

  • Actualización de aplicaciones : a medida que publica actualizaciones en su aplicación, debe seguir firmando las actualizaciones con el mismo certificado o conjunto de certificados, si desea que los usuarios puedan actualizarse sin problemas a la nueva versión. Cuando el sistema está instalando una actualización en una aplicación, compara el certificado (s) en la nueva versión con los de la versión existente. Si los certificados coinciden exactamente, incluidos los datos del certificado y la orden, el sistema permite la actualización. Si firma la nueva versión sin utilizar certificados coincidentes, también debe asignar un nombre de paquete diferente a la aplicación; en este caso, el usuario instala la nueva versión como una aplicación completamente nueva.

  • Modularidad de la aplicación : el sistema Android permite que las aplicaciones que están firmadas por el mismo certificado se ejecuten en el mismo proceso, si las aplicaciones así lo solicitan, para que el sistema las trate como una sola aplicación. De esta forma puede implementar su aplicación en módulos, y los usuarios pueden actualizar cada uno de los módulos independientemente si es necesario.

  • Compartición de códigos y datos a través de permisos : el sistema Android proporciona una aplicación de permisos basada en firmas, de modo que una aplicación pueda exponer la funcionalidad a otra aplicación que esté firmada con un certificado especificado. Al firmar varias aplicaciones con el mismo certificado y con las comprobaciones de permisos basadas en firmas, sus aplicaciones pueden compartir código y datos de forma segura.

Otra consideración importante para determinar su estrategia de firma es cómo establecer el período de validez de la clave que utilizará para firmar sus aplicaciones.

  • Si planea admitir actualizaciones para una sola aplicación, debe asegurarse de que su clave tiene un período de validez que excede la vida útil esperada de esa aplicación. Se recomienda un período de validez de 25 años o más. Cuando expire el período de validez de su clave, los usuarios ya no podrán actualizar a las nuevas versiones de su aplicación.

  • Si va a firmar varias aplicaciones distintas con la misma clave, debe asegurarse de que el período de validez de su clave excede la vida útil esperada de todas las versiones de todas las aplicaciones, incluidas las aplicaciones dependientes que se pueden agregar al conjunto en el futuro.

  • Si planea publicar sus aplicaciones en Google Play, la clave que utilice para firmar la (s) solicitud (es) debe tener un período de validez que finaliza después del 22 de octubre de 2033. Google Play hace cumplir este requisito para garantizar que los usuarios puedan actualizar aplicaciones perfectamente cuando Nuevas versiones están disponibles.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.