2014-11-20 6 views
24

Sto cercando di ottenere l'impronta digitale SHA1 in modo da poter ottenere una chiave API di Google. Im nella directory seguente:Il file del keystore non esiste

/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin

Poi ho eseguire il comando dal sito di Google:

keytool -list -v -keystore mystore.keystore

ma dà questo errore:

keytool error: java.lang.Exception: Keystore file does not exist: mystore.keystore 
java.lang.Exception: Keystore file does not exist: mystore.keystore 
    at sun.security.tools.keytool.Main.doCommands(Main.java:742) 
    at sun.security.tools.keytool.Main.run(Main.java:340) 
    at sun.security.tools.keytool.Main.main(Main.java:333) 

ho seguito lezioni private, ma posso non farlo funzionare! Qualcuno sa cosa sto sbagliando?

BTW: Sto usando un Macbook Pro con Xamarin Studio 5.5.2.

+0

Il problema potrebbe essere che si sta solo cercando di eseguire il comando copia da qualche parte e non sapere ciò che è in realtà è "(quello che è successo anche a me)), una volta che sai dove e cosa cerca, probabilmente otterresti la risposta. – eRaisedToX

risposta

13

hai detto che sta eseguendo il comando dalla ...

/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin 

è il file di archivio chiavi in ​​quella directory come bene? In caso contrario, è necessario specificare il percorso del file keystore, ad es.

keytool -list -v -keystore ~/somefolder/mystore.keystore 

Il keystore utilizzato deve essere quello utilizzato per firmare l'app. Per il debug di Xamarin, questo sarà il keystore di debug situato a /Users/[USERNAME]/.local/share/Xamarin/Mono\ for\ Android/debug.keystore. Il comando su OSX per questo sarebbe ...

keytool -list -v -keystore /Users/[USERNAME]/.local/share/Xamarin/Mono\ for\ Android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

O su Windows 7

keytool -list -v -keystore C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore -alias androiddebugkey -storepass android -keypass android 
+1

Non riesco a trovare il mio keystore, non sono sicuro in quale directory è. – Bas

+1

L'impronta digitale necessaria per la chiave dell'API di Google deve essere generata dal keystore utilizzato per firmare la tua app. Per una build di debug di Xamarin, usa il suo keystore di debug. Il tuo comando per questo sarebbe 'keytool -list -v -keystore/Users/[USERNAME] /. Local/share/Xamarin/Mono \ per \ Android/debug.keystore -alias androiddebugkey -storepass android -keypass android', dove [ USERNAME] è il tuo utente mac. –

+1

Ho modificato la mia risposta per includere il mio commento. –

4

Si prega di fornire il percorso completo di debug.keystore. Esempio: C: /Users/myusername/.android/debug.keystore invece di ~/.android/debug.keystore

48

Linux & Mac comando

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

Vi darà SHA1, SHA256, MD5 per chiave di debug predefinita. E può essere utilizzato per lo sviluppo e il debugging con i servizi di google play.

Per certificato di pubblicazione basta seguire https://developer.android.com/studio/publish/app-signing.html

1

ultimo aggiornamento per Mac & Ubuntu

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v 
1

Per il mio caso il debug.keystore viene generato dopo la prima esecuzione delle app su Android Studio

+0

Oh, questo è un buon punto, a cui non ho pensato. –

0

ho trovato questa guida dal forum teamtreehouse. spero ti possa aiutare.

1) Aprire il prompt dei comandi premendo Start + R e digitando cmd.exe.

2) Utilizzando Esplora risorse, trovare dove il tuo JDK directory si trova (di solito Programmi >> Java) e copiare il percorso.

3) Nel prompt di comando , digitare cd seguito dalla directory della directory bin di JDK. ad esempio: cd C: \ Programmi \ Java \ jdk1.8.0_25 \ bin è il comando che uso (il tuo può variare).

4) Utilizzando Windows Explorer, individuare la directory .android (di solito in Utenti >>[YOUR WINDOWS USERNAME]) e copiare il percorso.

5) Ora, utilizzare questo comando di seguito:

keytool -exportcert -alias androiddebugkey -keystore[PATH_TO_.ANDROID_DIRECTORY] -list -v 

Sostituzione [PATH_TO_.ANDROID_DIRECTORY] con il percorso è stato copiato. Si noti che è necessario eseguire questo comando nel terminale/prompt dei comandi nella directory bin del proprio JDK (l'operazione è stata eseguita al punto 3).

mio è C:\Program Files\Java\jdk1.8.0_121\bin>keytool -exportcert -alias androiddebugkey -keystore C:\Users\HoSiLuan\.android\debug.keystore -list -v

ricordatevi di usare C:\Users\HoSiLuan\.android\debug.keystore invece di ~/.android\debug.keystore. Ho ancora ricevuto l'errore quando digito questo modo abbreviato.

Si dovrebbe quindi essere richiesto con la password normalmente che è possibile immettere (la password è Android). Successivamente, vedrai l'elenco dei certificati stampati sullo schermo.

+0

Ho fatto esattamente quello che hai detto, e continuo a ricevere il messaggio "il file non esiste" ... –

1

Ho affrontato lo stesso problema, ma risolto tramite seguente comando:

keytool -exportcert -keystore C:\Users\<USERNAME>\.android\debug.keystore -list -v 

OS: Windows 7