Firmando aplicaciones Android

Todas las aplicaciones que vayan a ser instaladas en un Android (ya sea en un terminal o el emulador) deben estar firmadas. Esto es así porque Android utiliza esa firma para identificar a la aplicación que está realizando cualquier tipo de petición ya sea al sistema o a otras aplicaciones.

En principio se podía pensar que para poder firmar Google o alguna entidad nos tendría que dar algún tipo de certificado que «confirmara quien somos» (algo así como la FNMT en España, que nos proporciona el DNIe), pero no hace falta: las aplicaciones Android pueden ser firmadas con certificados personal, es decir, creados por nosotros mismos.

El proceso de firmado es sencillo, de hecho lo hacemos cada vez que compilamos. En modo depuración, Eclipse firma con unas firmas públicas todo los apk que genera para que así puedan ser instalados en el emulador. Esas claves se encuentran en (en Linux y MacOSX) ~/.android/debug.keystore y las genera cuando se compila por primera vez.

ATENCIÓN: Es posible cambiar la ubicación del fichero de almacén de claves (debug.keystore) desde  Eclipse/ADT, yendo a Windows > Preferences > Android > Build.

ATENCIÓN: si la firma caduca, sólo tenéis que borrar el fichero y Eclipse generará otro.

Esta firma es de acceso público (las contraseñas son «Android» y el alias de la clave es: «androiddebugkey») por lo que a la hora de distribuir la aplicación, debes generarte tu propia firma.

¿Cómo generar mi clave?

Hay dos formas: una usando la herramienta de línea de comandos keytool (tal como se explica aquí) y otra con el  propio Eclipse. Para ello vamos al ficheros Manifest.xml de nuestro proyecto y en la pestaña Manifest, pinchamos sobre la opción Uses the Export Wizard.

Esta acción arranca el asistente para la exportación de aplicaciones Android, que nos va a permitir utilizar nuestras claves ya guardadas o crear unas nuevas. Las claves se agrupan en lo que se llama almacén de claves o keystore. Como el objetivo es crear nuestra clave, en la primera ventana seleccionamos Create new keystore, seleccionamos la ubicación de nuestro almacén y le ponemos una contraseña.

¿Hay que firmar cada aplicación con una firma distinta?

No es necesario ni recomendable. Lo más habitual es firmar todas las aplicaciones que vayas desarrollando con la misma firma. Hay varias razones. Una es la la creación de actualizaciones: todas las versiones de una aplicación deben ir firmadas con la firma, o no se podrán actualizar. Además,  si queremos conectar varias de nuestras aplicaciones, la única manera será la utilización de la misma firma en todas ellas.

¿Qué es el periodo de validez?

Indica la caducidad de la firma, pero sólo a efectos de instalación. Es decir, una vez instalada la aplicación aunque la firma caduque la aplicación seguirá funcionando perfectamente. A la hora de indicar el tiempo, hay que pensar en la vida presumible de la aplicación (con sus versiones) y de todas aquellas que vayamos a firmar con la misma clave. Es por eso que se recomienda duraciones largas.

ATENCIÓN: Si estás pensando en subirla a Google Play, la firma tiene que caducar obligatoriamente después del 22/10/2033.

Compartir en Facebook Compartir en Twitter

Dejar un comentario

XHTML: Puedes usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>