App-Signierung
Schlüssel und Play App Signing
App-Signierung ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Apps signiert werden müssen
Android installiert eine App nur, wenn sie digital signiert ist. Die Signatur belegt zwei Dinge: wer die App veröffentlicht hat und dass die APK seitdem nicht manipuliert wurde.
Entscheidend ist, dass Signaturen Updates an die ursprüngliche App binden. Ein Update wird nur akzeptiert, wenn es mit demselben Schlüssel wie die installierte Version signiert wurde. Wenn Sie diesen Schlüssel verlieren, können Sie Ihre App nie wieder aktualisieren.
In dieser Lektion geht es um Keystores, die Signaturkonfiguration und Googles sichereren modernen Ansatz: Play App Signing.
Keystores und Schlüssel
Ihre Signieridentität befindet sich in einer Keystore-Datei (.jks oder .keystore). Ein Keystore kann mehrere Schlüssel enthalten. Jeder Schlüssel hat einen Alias und ein eigenes Passwort.
- Keystore-Passwort — entsperrt die Datei.
- Schlüsselalias — benennt den darin enthaltenen Schlüssel.
- Schlüsselpasswort — entsperrt den jeweiligen Schlüssel.
Die Debug-Builds, die Sie täglich ausführen, werden automatisch mit einem kurzlebigen Debug-Keystore signiert. Für ein Release benötigen Sie einen eigenen.
Einen Keystore erstellen
Sie können einen Keystore über den Dialog von Android Studio oder mit dem zum JDK gehörenden Befehl keytool erstellen.
Verwenden Sie eine lange Gültigkeitsdauer (25 Jahre oder mehr) — wenn der Schlüssel abläuft, können Sie keine Updates mehr veröffentlichen. RSA 2048 ist der Standard.
keytool -genkeypair \
-v \
-keystore release.jks \
-alias upload \
-keyalg RSA \
-keysize 2048 \
-validity 10000Der Block signingConfigs
Damit während eines Gradle-Builds automatisch signiert wird, deklarieren Sie einen Eintrag signingConfigs und weisen ihn dem release-Build-Typ zu.
Das funktioniert, aber beachten Sie: Die Passwörter stehen direkt in der Build-Datei — das beheben wir als Nächstes.
android {
signingConfigs {
create("release") {
storeFile = file("release.jks")
storePassword = "superSecret"
keyAlias = "upload"
keyPassword = "superSecret"
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
}
}
}Geheimnisse aus Git heraushalten
Übernehmen Sie niemals Passwörter oder den Keystore in die Versionsverwaltung. Lesen Sie sie stattdessen aus einer lokalen, von Git ignorierten Datei keystore.properties.
Fügen Sie keystore.properties und *.jks zu .gitignore hinzu.
// top of app/build.gradle.kts
val keystoreProps = Properties().apply {
val f = rootProject.file("keystore.properties")
if (f.exists()) load(f.inputStream())
}
android {
signingConfigs {
create("release") {
storeFile = file(keystoreProps["storeFile"] as String)
storePassword = keystoreProps["storePassword"] as String
keyAlias = keystoreProps["keyAlias"] as String
keyPassword = keystoreProps["keyPassword"] as String
}
}
}Die Datei keystore.properties
Die zugehörige Properties-Datei ist eine einfache Liste aus Schlüssel=Wert-Paaren. Sie wird aus Git herausgehalten und sicher gespeichert (zum Beispiel in einem Passwortmanager oder einem Secret Store für CI).
Auf einem CI-Server würden Sie diese Werte als umgebungsbasierte Secrets bereitstellen, statt eine eingecheckte Datei zu verwenden.
# keystore.properties (git-ignored!)
storeFile=release.jks
storePassword=superSecret
keyAlias=upload
keyPassword=superSecretPlay App Signing
Moderne Apps bei Play verwenden Play App Signing. Dabei verwaltet Google den eigentlichen App-Signaturschlüssel in seiner sicheren Infrastruktur und verwendet ihn, um die an die Nutzer ausgelieferten APKs zu signieren.
Sie verwalten nur einen Upload-Schlüssel: Sie signieren Ihr Bundle damit und laden es hoch. Play überprüft Ihren Upload-Schlüssel, entfernt dessen Signatur und signiert die APKs anschließend erneut mit dem App-Signaturschlüssel.
Der große Vorteil: Wenn Sie Ihren Upload-Schlüssel verlieren, können Sie eine Zurücksetzung beantragen — der App-Signaturschlüssel, dem die Nutzer vertrauen, bleibt jedoch bei Google geschützt.
Upload-Schlüssel und App-Signaturschlüssel
Zwei Schlüssel, zwei Aufgaben — verwechseln Sie sie nicht:
- Upload-Schlüssel — gehört Ihnen. Signiert die AAB, die Sie hochladen. Kann bei Verlust zurückgesetzt werden.
- App-Signaturschlüssel — gehört Google (oder wurde einmal von Ihnen hochgeladen). Signiert die finalen APKs, die Nutzer installieren. Ist dauerhaft.
Wenn Sie eine neue App registrieren, ist es am einfachsten, Google den App-Signaturschlüssel generieren zu lassen und Uploads mit Ihrem Upload-Schlüssel zu signieren.
Eine Signatur überprüfen
Um zu prüfen, wie ein Artefakt signiert ist, verwenden Sie apksigner aus den Build-Tools des Android SDK. Das Tool zeigt das Signaturzertifikat und die vorhandenen Signaturschemata (v1/v2/v3) an.
Der Vergleich des SHA-256-Fingerabdrucks des Zertifikats ist auch die Vorgehensweise, mit der Sie Ihre App bei Diensten wie Firebase oder Google Sign-In registrieren.
# Verify and print signer certificates of an APK
apksigner verify --print-certs app-release.apk
# Show the SHA-256 fingerprint of a keystore key
keytool -list -v -keystore release.jks -alias uploadIhre Schlüssel schützen
Ihr Upload-Schlüssel lässt sich nur schwer ersetzen, und Ihr App-Signaturschlüssel (falls Sie ihn selbst verwalten) ist nicht ersetzbar. Behandeln Sie beide wie Ihren größten Schatz:
- Sichern Sie den Keystore an mindestens zwei sicheren Orten.
- Speichern Sie Passwörter in einem Passwortmanager, niemals im Quellcode.
- Verwenden Sie Play App Signing, damit ein verlorener Upload-Schlüssel wiederhergestellt werden kann.
- Beschränken Sie im Team den Zugriff auf den Keystore.
Viele veröffentlichte Apps wurden einfach deshalb aufgegeben, weil der Entwickler den Schlüssel verloren hatte und keine Updates mehr bereitstellen konnte.
Alles zusammenführen
Der vollständige Ablauf für die Release-Signierung sieht so aus:
- Erstellen Sie mit
keytooleinen Upload-Keystore. - Verknüpfen Sie ihn mit
signingConfigsund lesen Sie die Geheimnisse auskeystore.properties. - Erstellen Sie mit
./gradlew bundleReleaseeine signierte.aab-Datei. - Laden Sie sie bei Play hoch. Play signiert sie vor der Auslieferung an die Nutzer erneut mit dem App-Signaturschlüssel.
Von nun an muss jedes Update mit demselben Upload-Schlüssel signiert werden.
Kurzer Check
Wenn Play App Signing aktiviert ist: Mit welchem Schlüssel signieren Sie das Bundle, das Sie hochladen, und was passiert, wenn Sie ihn verlieren?
Zusammenfassung: App-Signierung
Die Signierung macht eine Android-App installierbar und aktualisierbar:
- Ein Keystore enthält Schlüssel; jeder Schlüssel hat einen Alias und Passwörter.
- Erstellen Sie mit
keytooleinen Schlüssel mit langer Gültigkeitsdauer und verknüpfen Sie ihn mitsigningConfigs. - Halten Sie Passwörter mithilfe von
keystore.propertiesund.gitignoreaus Git heraus. - Play App Signing teilt die Schlüssel in Ihren zurücksetzbaren Upload-Schlüssel und Googles dauerhaften App-Signaturschlüssel auf.
- Sichern Sie Schlüssel sorgfältig — ein verlorener Schlüssel kann das Ende einer App bedeuten.
Als Nächstes richten Sie die Play Console und Ihren Store-Eintrag ein.
Häufig gestellte Fragen
Ist die Lektion „App-Signierung“ kostenlos?
Ja — der vollständige Text von „App-Signierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „App-Signierung“?
Schlüssel und Play App Signing Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „App-Signierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Einen Release-Build vorbereiten
- App-Signierung
- Die Play Console und der Store-Eintrag
- Rollouts und Updates