jump to navigation

Como firmar una app Android que usa Google MAPS para que se vea el mapa mayo 28, 2012

Posted by gstortoni in Android.
Tags: , , , , ,
add a comment

Bueno,

Cuando generamos nuestro mapa y lo compilamos desde nuestro PC al emulador, o bien a nuestro dispositivo (Celular – Tablet), si seguimos los pasos correctos, el mapa se podrá ver.

Pero a mi me pasó, que decidí exportar la APP y enviársela a un amigo por mail para que le revisara.

Lo primero que me dijo, es que el mapa no se le veía.. acto seguido, desinstalé la APP de mi celular, y la instalé desde el archivo que envié por correo…. Sorpresa… a mi tampoco se me veía.

Me rompí un poco la cabeza y finalmente encontré la solución y a decir verdad es bastante lógica.

(ojo no soy un experto en esto… simplemente leí muchos Post y la documentación de Google y llegué a la solución).

Primero que todo… necesitamos generar nuestra PROPIA Clave… s
Si fueron capaces de llegar hasta la página: https://developers.google.com/android/maps-api-signup y obtuvieron su .KEYSTORE  podrán ver que lo que en realidad obtuvieron fue la llave para uso en DEBUG, no para distribución, tal como dice el ejemplo de google:

$ keytool -list -keystore ~/.android/debug.keystore

Ahí dice clarito: “debug.keystore”, es por esto que no se me ve el mapa… bueno, volvamos a obtener nuestra propia keystore privada.

El comando a ejecutar por DOS es:

C:\Program Files\Java\jdk1.7.0_01\bin>keytool -genkey -v -keystore c:\Guille\my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 40000

Entendamos un poco… primero que todo… el comando es el KEYTOOL que se encuentra en la carpeda JDK. Segundo, verán que le doy una ruta donde almacenar mi .keystore, la cual está en mi disco C, carpeta Guille finalmente hay que darle una validez… en mi caso 40000 dias lo que corresponde a 109 años… (un poco exagerado).

Una vez que tengamos nuestra llave privada… lo que debemos obtener es el MD5 de esta clave para ir nuevamente a la página de google y obtener la API Key del Mapa…

Pero esta vez en vez de decir que use el “debug.keystore” le vamos a decir que use nuestra llave privada:
C:\Program Files\Java\jdk1.7.0_01\bin>keytool -list -keystore c:\Guille\my-release-key.keystore -keypass Mi_Contraseña -v

Con este comando obtendremos el MD5 lo demás es tema conocido… ir a google y colocarlo, obtener la API KEY y reemplazar ahora en nuestra APP por la del MAPA.

Una vez que hayamos terminado este paso… es hora de volver a exportar la applicación, pero esta vez…, la vamos a exportar como una app sin firmar. Si no saben como hacerlo, en el AndroidManifest, está la opción en la primera pestaña (Manifest) sección Exporting:

Export an unsigned APK and sign it manually

Exportan el APK, ojalá en la misma ruta donde guardaron su keystore y ahora lo único que falta es finalmente FIRMARLO con nuestra llave publica.

para ello se ejecuta el siguiente comando:

C:\Program Files\Java\jdk1.7.0_01\bin>jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore c:\Guille\my-release-key.keystore c:\Guille\mi_app.apk alias_name

 

Con esto ESTA listo… ya tendrán su APP firmada con su llave privada y el mapa funcionando!!!

 

Hasta la próxima.

Anuncios