Tutorials

Keystore Android – Facciamo Chiarezza

By on 4 Luglio 2015

Quando sviluppiamo un applicazione con android studio o eclipse e la proviamo sul nostro dispositivo, questa viene trustata con un certificato default chiamato debug.keystore.
La posizione di questa chiave di default è questa (con eclipse):

  • Windows -> Preferences
  • Select Android -> Build
  • There you will see Default debug keystore: “Path”

Sia il custom keystore che il default sono il più delle volte idenitici.
Per poter ultilizzare le API di Google (come per esempio Maps) c’è bisogno di una chiave da inserire nel codice, per esempio:

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="chiavedaottenere" />

Per ottenere questa chiave dobbiamo

  • registrarci al https://console.developers.google.com/project
  • Creare un nuovo progetto
  • Sotto APIs & auth -> APIs abilitiamo le API che vogliamo usare (Es. Maps)
  • In credentials otteniamo quella chiave, vediamo nel dettaglio come:

Creiamo una nuova chiave con Create new Key, selezioniamo Android (se stiamo sviluppando per Android) e ci verrà richiesto di immettere un codice SHA1 seguito dal package della vostra app.
Ogni keystore ha il suo SHA1, quindi quando stiamo sviluppando e debuggando la nostra app e usiamo il debug.keystore avremo una certa KEY, mentre quando creeremo un certificato personale per pubblicare l’app sul Google Store avremo una KEY differente.

Per estrarre lo SHA1 dal debug.keystore dobbiamo trovare il programma keytool presente sempre in java\jreXqualcosa\bin, posizionarsi in quella directory con cmd ed eseguire il seguente comando:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

 

Otterremo uno (SHA1) del tipo:
Impronta digitale certificato (SHA1): 32:99:BD:F5:E6:6A:11:16:CF:C4:D4:4B:DD:46:5A:66:05:E2:4A:47

Scriviamo questo codice nella console.developers.google.com dove ci viene richiesta e concateniamoci il package della vistra app, quindi per esempio:
32:99:BD:F5:E6:6A:11:16:CF:C4:D4:4B:DD:46:5A:66:05:E2:4A:47;it.mariorosso.lamiaapp

Otterremo sulla console qualcosa del tipo:

Key for Android applications
API key
AIzaSyCwJiQp96VCax7YEUGgCDWvzXOqKXocO9U
Android applications
32:99:BD:F5:E6:6A:11:16:CF:C4:D4:4B:DD:46:5A:66:05:E2:4A:47;it.mariorosso.lamiaapp
Activation date
Mar 20, 2013, 11:38:00 AM
Activated by
mario.rosso@gmail.com (you)

Ora possiamo usare la chiave AIzaSyDCKJYfPYes2TmNmrooNUJOrukWn39M4QU ma SOLO per il debug in locale !!!

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDCKJYfPYes2TmNmrooNUJOrukWn39M4QU" />

Finito di sviluppare l’applicazione dobbiamo esportare l’apk usando un certificato nostro diverso da quello di default, per esempio mioKeystorePersonale. Creiamolo e segnamoci da qualche parte la password e l’alias. Useremo sempre questo certificato per rilasciare nuovi aggiornamenti sul play store.

Ma ovviamente dobbiamo generare una nuova key da mettere qui:

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="chiavedaottenere" />

Altrimenti la mappa non funzionerà !!

Come prima posizioniamoci nel bin della nostra jre ed apriamo un cmd. Copiamoci qua dentro il keystore appena generato e eseguiamo il seguente comando:

keytool -list -v -keystore mioKeystorePersonale

Ci verrà richiesta la password ed inserita otterremo lo SHA1 voluto:

Impronta digitale certificato (SHA1):
67:9A:4C:DU:78:2D:96:42:00:70:68:24:A8:9F:5C:6D:C5:EC:BE:E8

Ora non ci resta che andare nella console e generare una nuova key android utile per
questo keystore.

Key for Android applications
API key
AIzaSyDCKJYfPYes2TmsdeeooNUJOrukWf39M4QU
Android applications
67:9A:4C:DU:78:2D:96:42:00:70:68:24:A8:9F:5C:6D:C5:EC:BE:E8;it.mariorosso.lamiaapp
Activation date
Mar 25, 2013, 12:03:00 PM
Activated by
francesco.falcitelli@gmail.com (you)

Ora mettiamola nel codice e godiamoci la mappa (visibile solo scaricando l’applicazione dal play store o mettendo a mano l’apk sullo smartphone)

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDCKJYfPYes2TmsdeeooNUJOrukWf39M4QU" />

Ciao a tutti

TAGS
RELATED POSTS

LEAVE A COMMENT

IL FALCY
Turin, Italy

Hi my name is Falcy and this is my World! I use this blog theme to tell people my story. Through all the places and things I see around the world, there isn't a best way to share my experience! Follow my daily updates and discover with me the essence of traveling!

Visited Places