Autore Topic: Generare chiave google maps definitiva per rilascio app  (Letto 1447 volte)

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Generare chiave google maps definitiva per rilascio app
« il: 09 Agosto 2014, 23:42:24 CEST »
0
Ieri ho pubblicato la mia prima app. Questa app usa Google Maps ma all'avvio invece di vedere la mappa vedo un bel rettangolo grigio.
Visto che in fase di debug tutto funzionava il problema deve essere legato alla generazione dell'app per lo store.
Attraverso Android Studio (0.8.2) ho avviato la procedura guidata "Generate signed APK" che prima mi ha fatto generare il file keystore di release (formato jks) quindi mi ha generato il file APK da caricare sullo store.
Attraverso il comando "keytool -list -v -keystore miofilekeystore.jks -list", inserendo la password su richiesta ho preso nota (copia-incolla) del codice SHA1 quindi dalla console API di Google ho aggiunto sotto la voce "Key for Android applications" l'applicazione "MIOCODICESHA1;nomeapp".

Credo che il procedimento sia corretto ma il risultato che ottengo installando l'app dallo store e per l'appunto quello di vedere un rettangolo grigio invece della mappa cosa che mi accedeva all'inizio dello sviluppo quando non non sapevo di dover usare la Consolo API di Google per autorizzare l'app all'uso di maps.

Mi sapete dare qualche consiglio perchè non so più dove sbattere la testa?
Grazie

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #1 il: 10 Agosto 2014, 11:30:20 CEST »
0
Prima di generare lapk di release, devi modificare la apikey nel manifest, che viene generata dalla console quando hai inserito sha1 e nomeapp... Controlla la guida ufficiale, ti spiega bene cosa sono le varie parti in gioco!

Inviato dal mio Nexus 7 utilizzando Tapatalk

IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #2 il: 10 Agosto 2014, 12:04:44 CEST »
0
Io ho provato a fare 2 cose e una delle 2 penso sia quella che dici tu:
- prima ho provato ad aggiungere "MIOCODICESHA1;nomeapp" matendo la stessa API KEY, nella consolo API di Google é infatti possibile inserire in per una stessa API KEY più combinazioni di "codiceSHA1;nomeapp" (una per riga), in questo mod l'API KEY rimane la stessa per l'app di debug e quella di release;
- visto che il punto precedente non funzionava ho creato una nuova API KEY e aggiunto un solo "codiceSHA1;nomeapp" relativa all'SHA1 generato con il solo keystore di release;

Il risultato che ottengo é il medesimo. Sto impazzendo, lavoro l'app da 3 mesi e non ho mai avuto problemi, ora che é finita la mappa non funziona.

Ho letto la guida e mi sembra di aver proceduto correttamente: https://developers.google.com/maps/documentation/android/start?hl=fr#getting_the_google_maps_android_api_v2

Spero possiate aiutarmi perchè sono 2 giorni che sto diventando matto. Ho letto non so quante guide ma non trovo nulla che non abbia già fatto.
Grazie in antiticpo.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #3 il: 10 Agosto 2014, 12:43:06 CEST »
0
Hai fatto una pulizia dei dati sul telefono passando da debug a release?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #4 il: 10 Agosto 2014, 13:45:42 CEST »
0
Hai fatto una pulizia dei dati sul telefono passando da debug a release?

Che intendi per pulizia?
Ho disinstallato l'app di debug e ho installato quella di release dallo store.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #5 il: 10 Agosto 2014, 14:28:55 CEST »
0
Mmm allora non so,io ho dovuto fare un cancella dati dellapp passando da debug a release
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #6 il: 10 Agosto 2014, 15:27:05 CEST »
0
Ma riassumento tra la versione di debug e quella di release, l'unica cosa che é necessario cambiare non é aggiungere la coppia "codiceSHA1;nomeapp" nella console API di Google? Voglio dire se non cambio API KEY nella console API non é solo sufficiente aggiungere la nuova coppia "codiceSHA1;nomeapp"?

Non c'è altra da fare? allora perché diavolo non funziona?

Post unito: 10 Agosto 2014, 15:59:52 CEST
Riporto una parte del log, sperando possa servire:
Codice: [Seleziona]
08-10 15:34:07.457  14004-14004/com.mionome.miapp I/Google Maps Android API? Google Play services client version: 4452000
08-10 15:34:07.492  14004-14004/com.mionome.miapp I/Google Maps Android API? Google Play services package version: 5089034
08-10 15:34:08.406  14004-14029/com.mionome.miapp I/Google Maps Android API? Failed to contact Google servers. Another attempt will be made when connectivity is established.
08-10 15:34:09.043      413-429/system_process I/ActivityManager? Displayed com.mionome.miapp/.MapsActivity: +2s40ms
08-10 15:34:23.597  14004-14048/com.mionome.miapp E/Google Maps Android API? Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
« Ultima modifica: 10 Agosto 2014, 15:59:52 CEST da array81, Reason: Merged DoublePost »

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #7 il: 10 Agosto 2014, 16:16:36 CEST »
0
ma l'hai pubblicata? facci vedere se da lo stesso problema

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #8 il: 10 Agosto 2014, 16:21:03 CEST »
0
Si che l'ho pubblicata, non ho riportato il nome per non diffonderla e rischiare di avere un rating basso da qualche simpaticone visto il problema.
Si chiama "TopoTAF Mobile" é un applicazione per la ricerca di punti fiduciali utilizzati dai tecnici che si occupano di catasto.
Appena avviata dovrebbe mostrare la mappa ma non mostra nulla.
Se qualcuno la vuole provare mi faccia sapere. Io l'ho provata sia su smartphone che tablet ed ho lo stesso problema (su entrambi avevo provato la versione di debug e funzionava).

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #9 il: 10 Agosto 2014, 16:24:39 CEST »
0
Confermo non andare.
Purtroppo non si aiutarti.

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #10 il: 10 Agosto 2014, 16:39:02 CEST »
0
Intanto che la provate vi riporto passo passo l'ennesimo tentativo che ho provato a fare. Il risultato é lo stesso ma magari mi sapete dire se sbaglio qualcosa:
1- questa volta invece di usare direttamente il software keytool.exe ho usato il software "KeyStore Explorer", si tratta di un software gratuito che funge da interfaccia grafica di keytool.exe. Con tale software ho aperto il file JKS contente la mia firma per la versione di release della mia app ed ottengo quanto sotto riportato:


2-A questo punto o preso il codice SHA1 (che per la cronaca é lo stesso ottenuto direttamente con keystore.exe) riportato nella'immagine sovrastante e l'ho inserito nella Google API Console, prima l'ho inserito aggiungendolo alla stessa API KEY usata per il debug, quindi non é stato necessario modificare l'API KEY nel codice dell'app. (vedere API KEY 1 nell'immagine sottostante), poi ho provato a creare una nuova API KEY (vedere API KEY 1 nell'immagine sottostante) con la sola coppia di valori relativi all'app di release, ho modificato l'API KEY nel codice sorgente ed ho rigenerato l'APK firmato:


Il risultato é purtroppo lo stesso.
Come si può vedere nell'immagine sopra nel primo API KEY ci sono altre 3 coppie di valori relativi a 3 debug keystore di 3 computer in mio possesso. Quelli funzionano senza problemi.

Spero che troviate un errore nel mio modo di procedere.

Post unito: 10 Agosto 2014, 23:44:50 CEST
Visto che non so più dove sbattere la testa ho provato a fare un'altro esperimento: ho creato in Android Studio un nuovo progetto relativo a Google Maps (tramite apposito wizard) quindi ho inserito l'API KEY generata per l'app principale e nella Console ho aggiunto l'ennesima riga con SHA1;nomeapp usando lo stesso SHA1 dell'app principale. Ho quindi firmato l'app con lo stesso keystore di relaese. Installo l'app sul dispositivo e la mappa non si vede. Cosa diavolo sto sbagliando!!!
« Ultima modifica: 10 Agosto 2014, 23:44:50 CEST da array81, Reason: Merged DoublePost »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #11 il: 11 Agosto 2014, 21:35:40 CEST »
0
Sei sicuro al 100% che firmi l'app con quel certificato? Non vedo altri problemi...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #12 il: 11 Agosto 2014, 22:30:55 CEST »
0
Sei sicuro al 100% che firmi l'app con quel certificato? Non vedo altri problemi...

Si sono sicuro e visto che mi ero posto il problema ho fatto qualche ricerca su internet e trovato questo link android - How to find out which key was used to sign an app? - Stack Overflow

In sostanza ho estratto direttamente dal file APK firmato con il file keystore di release la chiave usata per firmarlo:
ho rinominato il file APK firmato in zip, ho estratto il file /META-INF/CERT.RSA, quindi ho eseguito il comando "keytool -printcert -file CERT.RSA" e mi é stato restituito lo stesso codice SHA1 che ho inserito nella Console di Google (quello che si intravede nelle immagini riportate nel messaggio precedente).

Questa cosa non ha senso, ho letto decine di guide, i passaggi alla fine sono pochi e semplici, li ho ripetuti una marea di volte ma non cambia nulla.

Non vi viene in mente nulla che potrei aver sbagliato?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #13 il: 11 Agosto 2014, 22:33:13 CEST »
0
A dirti la verità no, se nellapk di release c'è l'API key generata con sha1 corretto no...
A meno che tra debug e release non usi un package name diverso o  lo sovrascrivi nei file gradle
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Re:Generare chiave google maps definitiva per rilascio app
« Risposta #14 il: 11 Agosto 2014, 22:44:30 CEST »
0
A dirti la verità no, se nellapk di release c'è l'API key generata con sha1 corretto no...
A meno che tra debug e release non usi un package name diverso o  lo sovrascrivi nei file gradle

Questa cosa come la posso verificare?

Post unito: 11 Agosto 2014, 23:44:32 CEST
HO RISOLTO!

Il problema era questo, quando ho creato l'app ho eseguito la procedura guidata di Android Studio.
Nel creare l'app Android Studio ha "linkato" l'API KEY di Google Maps a una risorsa di tipo string, io quindi ho sempre cambiato questa stringa con l'API KEY di Google Maps ma non mi ero mai accorto che il file XML con questa stringa si trovava dentro la cartella debug e che quindi c'era un analogo file nella cartella release che evidentemente veniva usato in fase di release.
Essendo la mia prima volta con Android non sapevo della possibilità di distinguere le risorse tra debug e release, funzione comoda ma che mi ha fatto perde giorni...

Ad ogni caso grazie a tutti per il supporto spero che la mia esperienza possa aiutare qualcun'altro.
« Ultima modifica: 11 Agosto 2014, 23:44:32 CEST da array81, Reason: Merged DoublePost »