Einleitung
Bei der Android-App-Entwicklung und dem Release ist häufig eine Überprüfung der Keystore-Informationen erforderlich.
- Google Play Console benötigt SHA1/SHA256
- Firebase-Konfiguration benötigt Fingerprints
- Signatur korrekt überprüfen
Hier werden die Befehle zusammengefasst, die in diesen Situationen verwendet werden.
Grundlagen: Alle Keystore-Informationen überprüfen
keytool -list -v -keystore your-keystore.jks
Nach Eingabe des Passworts werden folgende Informationen angezeigt:
Keystore-Typ: JKS
Keystore-Provider: SUN
Anzahl der Einträge im Keystore: 1
Alias-Name: mykey
Erstellungsdatum: 01.01.2024
Eintragstyp: PrivateKeyEntry
Länge der Zertifikatkette: 1
Zertifikat[1]:
Inhaber: CN=My App, OU=Development, O=My Company
SHA1: AB:CD:EF:12:34:56:...
SHA256: 01:23:45:67:89:AB:...
SHA1 und SHA256 werden als Fingerprints registriert, die auf Firebase und Play Console verwendet werden.
Nur den Alias-Namen überprüfen
keytool -list -keystore release.jks
Wenn Sie -v weglassen, wird eine vereinfachte Anzeige eingeblendet. Dies ist hilfreich, wenn Sie nur den Alias-Namen und den Typ überprüfen möchten.
Überprüfen, mit welchem Schlüssel eine APK signiert wurde
Für eine bereits veröffentlichte APK können Sie die Signaturinformationen überprüfen.
apksigner verify --print-certs app-release.apk
Oder:
keytool -printcert -jarfile app-release.apk
Damit können Sie die SHA1/SHA256 der APK überprüfen. Verwenden Sie diesen Befehl, um zu überprüfen, ob „diese APK mit dem richtigen Schlüssel signiert wurde".
debug.keystore überprüfen
Der von Android Studio automatisch generierte debug.keystore befindet sich am Standardort.
Speicherort:
C:\Users\Benutzername\.android\debug.keystore (Windows)
~/.android/debug.keystore (Mac/Linux)
Überprüfungsbefehl:
# Windows
keytool -list -v -keystore %USERPROFILE%\.android\debug.keystore
# Mac/Linux
keytool -list -v -keystore ~/.android/debug.keystore
Standardinformationen:
| Element | Wert |
|---|---|
| Passwort | android |
| Alias | androiddebugkey |
| Gültigkeitsdauer | 30 Jahre |
build.gradle-Konfiguration überprüfen
Wenn Sie überprüfen möchten, welcher Keystore zum Erstellen verwendet wird, schauen Sie sich den Abschnitt signingConfigs in app/build.gradle an.
Groovy (build.gradle):
signingConfigs {
release {
storeFile file("release.jks")
storePassword "xxxxx"
keyAlias "mykey"
keyPassword "xxxxx"
}
}
Kotlin (build.gradle.kts):
signingConfigs {
create("release") {
storeFile = file("release.jks")
storePassword = System.getenv("STORE_PASSWORD")
keyAlias = "mykey"
keyPassword = System.getenv("KEY_PASSWORD")
}
}
Statt Passwörter direkt zu schreiben, ist es sicherer, sie in CI/CD-Umgebungen aus Umgebungsvariablen zu lesen.
keytool wird unter Windows nicht gefunden
'keytool' is not recognized as an internal or external command
Dieser Fehler tritt auf, wenn das bin-Verzeichnis des JDK nicht zum PATH hinzugefügt wurde.
Lösung 1: Mit vollständigem Pfad ausführen
"C:\Program Files\Java\jdk-17\bin\keytool.exe" -list -v -keystore release.jks
Lösung 2: Zum PATH hinzufügen (dauerhaft)
- Öffnen Sie Systemeigenschaften → Umgebungsvariablen
- Fügen Sie
C:\Program Files\Java\jdk-17\binzuPathhinzu - Starten Sie das Terminal neu
Lösung 3: Das JDK von Android Studio verwenden
"C:\Program Files\Android\Android Studio\jbr\bin\keytool.exe" -list -v -keystore release.jks
Android Studio enthält ein JDK, daher können Sie dieses immer verwenden, wenn es installiert ist.
Zusammenfassung
| Zweck | Befehl |
|---|---|
| Alle Keystore-Informationen überprüfen | keytool -list -v -keystore xxx.jks |
| Nur Alias-Namen überprüfen | keytool -list -keystore xxx.jks |
| APK-Signatur überprüfen | apksigner verify --print-certs xxx.apk |
| debug.keystore überprüfen | keytool -list -v -keystore %USERPROFILE%\.android\debug.keystore |
Wenn SHA1/SHA256 für Firebase-Konfiguration oder Play Console erforderlich ist, können Sie diese Befehle verwenden, um schnell Informationen abzurufen.