Firmar aplicación Android sin utilizar Eclipse o Android Studio

noviembre 26, 2014

Para subir una aplicación a Google Play es obligatorio que esté firmada. Si estamos desarrollando una aplicación para nosotros mismos o para nuestra empresa, el propio Eclipse o Android Studio nos ofrecen la posibilidad de exportar la aplicación ya firmada.

En el supuesto de este artículo, estamos desarrollando una aplicación para un cliente o hemos contratado a alguien externo para que nos programe la aplicación. En este caso, no queremos que el programador firme la aplicación Android con su firma ya que es necesario que la firmemos nosotros mismos por cuestiones de seguridad.

Para ello, el programador deberá exportar la aplicación sin firmar:

unsigned_new

Una vez tenemos en nuestro poder la aplicación sin firmar, procederemos a firmarla siguiendo los siguientes pasos.

1) Generamos nuestro fichero de firmas (keystore).

keytool -genkey -v -keystore myapps.keystore -alias myapp_name -keyalg RSA -keysize 2048 -validity 10000

Nos pedirá una contraseña para cifrar el fichero.

Con este comando estamos generando un fichero de firmas (myapps.keystore) y estamos añadiendo una nueva clave privada (myapp_name) para nuestra aplicación.

2) Firmamos la aplicación con nuestra clave privada. Para ello utilizamos jarsigner.

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myapps.keystore myapp.apk myapp_name

Nos pedirá la contraseña que hemos asignado anteriormente. Este comando modifica el apk (myapp.apk) y añade la firma.

3) Verificamos que la aplicación ha sido firmada.

jarsigner -verify -verbose -certs myapp.apk

4) Finalmente, optimizamos la aplicación con el comando zipalign (más información sobre el comando zipalign)

zipalign -v 4 myapp.apk myapp_signed.apk

El archivo final que deberemos subir a Google Play es myapp_signed.apk.

Tags ; , , , , , , ,

1 comentario

    wilfredounico Feb 21, 2016

    Hola, como hacer si estas en windows? donde keytool jarsigner zipalign no existen?

    Responder

Escribe un comentario

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.