una studio play modificada google generate generar firmar debug crear como app android security android-manifest apk sign

android - studio - ¿Por qué debo firmar mi aplicación APK antes de lanzarla?



generate keystore android (1)

¿Alguien puede informar la importancia exacta de firmar un APK antes de lanzarlo?


De la documentación de Android para aplicaciones de firma :

El sistema Android requiere que todas las aplicaciones instaladas estén firmadas digitalmente con un certificado cuya clave privada es propiedad 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. No es necesario que el certificado esté firmado por una autoridad de certificación: está perfectamente permitido y es típico que las aplicaciones de Android utilicen certificados autofirmados.

Los puntos importantes a comprender sobre la firma de aplicaciones de Android son:

  • Todas las solicitudes deben estar firmadas. El sistema no instalará una aplicación en un emulador o dispositivo si no está firmado.
  • Para probar y depurar su aplicación, las herramientas de compilación firman su aplicación con una clave de depuración especial creada por las herramientas de compilación de Android SDK.
  • Cuando esté listo para lanzar su aplicación para 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 del SDK.
  • Puede utilizar certificados autofirmados para firmar sus aplicaciones. No se necesita ninguna autoridad de certificación.
  • El sistema prueba la fecha de caducidad de un certificado de firmante solo en el momento de la instalación. Si el certificado de firmante de una aplicación caduca después de instalarla, la aplicación continuará funcionando normalmente.
  • Puede usar herramientas estándar (Keytool y Jarsigner) para generar claves y firmar los archivos .apk de su aplicación.
  • Después de firmar su solicitud de lanzamiento, le recomendamos que utilice la herramienta zipalign para optimizar el paquete final de APK.

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

¿Por qué significa:

Algunos aspectos de la firma de aplicaciones pueden afectar la forma en que aborda el desarrollo de su aplicación, especialmente si planea lanzar varias aplicaciones .

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

  • Actualización de la aplicación : a medida que publica las actualizaciones de su aplicación, debe continuar firmándolas con el mismo certificado o conjunto de certificados, si desea que los usuarios puedan actualizar sin problemas a la nueva versión. Cuando el sistema instala una actualización de una aplicación, compara los certificados de la nueva versión con los de la versión existente. Si los certificados coinciden exactamente, incluidos los datos y el pedido del certificado, el sistema permite la actualización. Si firma la nueva versión sin usar 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 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 manera, puede implementar su aplicación en módulos, y los usuarios pueden actualizar cada uno de los módulos de forma independiente si es necesario.

  • Código / intercambio de datos a través de permisos : el sistema Android proporciona la aplicación de permisos basados ​​en firmas, de modo que una aplicación puede exponer la funcionalidad a otra aplicación que está firmada con un certificado específico. Al firmar varias aplicaciones con el mismo certificado y utilizar controles de permisos basados ​​en firmas, sus aplicaciones pueden compartir códigos y datos de manera segura.

Otra consideración importante al 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 tenga un período de validez que supere la vida útil esperada de esa aplicación. Se recomienda un período de validez de 25 años o más. Cuando el período de validez de su clave caduque, los usuarios ya no podrán actualizar sin problemas a 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 supere la vida útil esperada de todas las versiones de todas las aplicaciones, incluidas las aplicaciones dependientes que pueden agregarse a la suite en el futuro.

  • Si planea publicar su (s) aplicación (es) en Google Play, la clave que use para firmar la (s) aplicación (es) debe tener un período de validez que finalice después del 22 de octubre de 2033. Google Play hace cumplir este requisito para garantizar que los usuarios puedan actualizar las aplicaciones sin problemas cuando Nuevas versiones están disponibles.