Ich versuche, die Release-Version meiner Android-App (das Debugging wurde ordnungsgemäß unterzeichnet) für das Google Maps-API zu unterzeichnen:
keytool -list -alias cancertrials -keystore /Users/syalam/Documents/workspace/Cancer_Trials/keys/release -storepass Android -keypass cancertrials
Aber ich bekomme den Fehler:
Java.io.IOException: Keystore was tampered with, or password was incorrect
Ich bin sicher, dass das Passwort korrekt ist, denn wenn ich versuche, meine App in Eclipse zu exportieren, werden Sie nach dem Keystore und dem Passwort gefragt, und ich gebe es richtig ein.
Nicht sicher, warum ich das nicht unterschreiben kann? Ich muss Google Maps im Freigabemodus anzeigen (im Debugmodus arbeiten).
Ich denke nicht, dass Sie einen Storepass hinzufügen müssen, wenn Sie nur eine Liste erstellen. Der storepass verschlüsselt den privaten Schlüssel, der bei einer Liste nicht angezeigt wird. Probieren Sie einfach folgendes aus:
keytool -list -keystore /Users/salam/Documents/yada/yada
Geben Sie dann Ihr Keystore-Kennwort ein, wenn Sie dazu aufgefordert werden. Wenn dies funktioniert, können Sie nur den Schlüsselpass in der Befehlszeile ausprobieren.
Möglicherweise möchten Sie auch überprüfen, ob Sie dieselbe Java-Version verwenden. Ich glaube nicht, dass dies das Problem ist, aber wenn das oben genannte Problem nicht hilft, probieren Sie es aus.
Unter Windows akzeptierte das Keytool das Passwort nicht. Ich brauchte nur das SHA1-Passwort zum Konfigurieren der Client-ID im Projekt auf der Google Dev Console. Folgendes schien für mich zu funktionieren
keytool --list --keystore Android.jks --protected
Dies druckte die SHA1-Schlüssel für alle Aliase.
Ich habe das gleiche Problem mit jarsigner auf jdk1.6.0.31, als ich wieder auf 1.6.0_29 umgestellt wurde. Jarsigner funktioniert einwandfrei. Bitte beachten Sie die jdk-Version.
Überprüfen Sie einmal Ihren Aliasnamen. Manchmal unterscheidet sich Ihr Alias von dem Keytool-Aliasnamen, und es wird derselbe Fehler angezeigt.
keytool -list -keystore "Path of the keystore"
Dieser Befehl fragt in linux
-Rechnern nach einem Kennwort, wohingegen Sie in Windows-Rechnern nur den Listenkeycore eingeben müssen.