Unter Android müssen alle APKs digital mit einem Zertifikat signiert werden, bevor sie auf einem Gerät installiert oder aktualisiert werden. Bei der Veröffentlichung mit Android App Bundles musst du dein App Bundle mit einem Uploadschlüssel signieren, bevor du es in die Play Console hochlädst. Um alles Weitere kümmert sich Play App Signing. Bei Apps, die mithilfe von APKs im Play Store oder in anderen Stores vertrieben werden, müssen Sie die APKs zum Hochladen manuell signieren.
Auf dieser Seite werden einige wichtige Konzepte im Zusammenhang mit der App-Signatur und -Sicherheit erläutert. Außerdem erfährst du, wie du deine App mit Android Studio für die Veröffentlichung bei Google Play signierst und die Play App-Signatur konfigurieren kannst.
Im Folgenden finden Sie eine allgemeine Übersicht über die Schritte, die Sie möglicherweise ausführen müssen, um eine neue App zu signieren und bei Google Play zu veröffentlichen:
- Uploadschlüssel und Schlüsselspeicher generieren
- App mit dem Uploadschlüssel signieren
- Google Play App-Signatur konfigurieren
- App bei Google Play hochladen
- App-Release vorbereiten und einführen
Wenn Ihre App stattdessen bereits mit einem vorhandenen App-Signaturschlüssel im Google Play Store veröffentlicht wurde oder Sie den App-Signaturschlüssel für eine neue App auswählen möchten, anstatt ihn von Google generieren zu lassen, gehen Sie so vor:
- Signieren Sie Ihre App mit dem Signaturschlüssel der App.
- Laden Sie den Signaturschlüssel Ihrer App in Play App Signing hoch.
- (Empfohlen) Generieren Sie ein Uploadzertifikat und registrieren Sie es für zukünftige Updates Ihrer App.
- App bei Google Play hochladen
- App-Release vorbereiten und einführen
Auf dieser Seite wird auch erläutert, wie Sie Ihre eigenen Schlüssel verwalten, wenn Sie Ihre Anwendung in andere App-Shops hochladen. Wenn Sie nicht Android Studio verwenden oder Ihre App lieber über die Befehlszeile signieren möchten, informieren Sie sich über die Verwendung von apksigner
.
Play App-Signatur
Mit der Play App-Signatur verwaltet und schützt Google den Signaturschlüssel deiner App und verwendet ihn zum Signieren deiner APKs für den Vertrieb. Da App Bundles das Erstellen und Signieren von APKs im Google Play Store verzögern, müssen Sie die Play App-Signatur konfigurieren, bevor Sie Ihr App Bundle hochladen. Dadurch haben Sie folgende Vorteile:
- Du kannst das Android App Bundle verwenden und die erweiterten Übermittlungsmodi von Google Play unterstützen. Mit dem Android App Bundle wird deine App wesentlich kleiner und Releases einfacher. Außerdem kannst du Funktionsmodule verwenden und Instant-Funktionen anbieten.
- Erhöhen Sie die Sicherheit Ihres Signaturschlüssels und ermöglichen Sie die Verwendung eines separaten Uploadschlüssels, um das App Bundle zu signieren, das Sie bei Google Play hochladen.
Mit der Schlüsselaktualisierung können Sie Ihren App-Signaturschlüssel ändern, falls Ihr vorhandener Schlüssel manipuliert wird oder Sie zu einem kryptografisch stärkeren Schlüssel migrieren müssen
Die Play App-Signatur verwendet zwei Schlüssel: den App-Signaturschlüssel und den Uploadschlüssel. Diese werden im Abschnitt Schlüssel und Schlüsselspeicher ausführlicher beschrieben. Sie behalten den Uploadschlüssel und verwenden ihn, um Ihre App für den Upload in den Google Play Store zu signieren. Google verwendet das Uploadzertifikat, um Ihre Identität zu bestätigen, und signiert Ihre APKs mit Ihrem App-Signaturschlüssel für die Verteilung, wie in Abbildung 1 dargestellt. Wenn du einen separaten Uploadschlüssel verwendest, kannst du das Zurücksetzen des Uploadschlüssels anfordern, wenn dein Schlüssel verloren geht oder manipuliert wird.
Bei Apps, die nicht für die Play App-Signatur aktiviert sind, können Apps hingegen nicht mehr aktualisiert werden, wenn Sie den Signaturschlüssel verlieren.
Abbildung 1. App mit Play App-Signatur signieren
Ihre Schlüssel werden in derselben Infrastruktur gespeichert, in der Google seine eigenen Schlüssel speichert. Dort sind sie durch den Key Management Service von Google geschützt. Weitere Informationen zur technischen Infrastruktur von Google finden Sie in den Whitepapers zur Sicherheit in Google Cloud.
Wenn Sie die Play App-Signatur verwenden und Ihren Uploadschlüssel verlieren oder er manipuliert wurde, können Sie in der Play Console das Zurücksetzen des Uploadschlüssels beantragen. Da Ihr App-Signaturschlüssel von Google geschützt wird, können Sie auch dann weiterhin neue Versionen Ihrer Anwendung als Updates in die ursprüngliche Anwendung hochladen, wenn Sie die Uploadschlüssel ändern. Weitere Informationen finden Sie unter Verlorenen oder manipulierten privaten Uploadschlüssel zurücksetzen.
Im nächsten Abschnitt werden einige wichtige Begriffe und Konzepte im Zusammenhang mit Anwendungssignatur und Sicherheit beschrieben. Wenn Sie lieber fortfahren und erfahren möchten, wie Sie Ihre App für den Upload in den Google Play Store vorbereiten, gehen Sie zu App für die Veröffentlichung signieren.
Schlüsselspeicher, Schlüssel und Zertifikate
Java-Schlüsselspeicher (.jks oder .keystore) sind Binärdateien, die als Repositories von Zertifikaten und privaten Schlüsseln dienen.
Ein Public-Key-Zertifikat (.der
- oder .pem
-Dateien), auch als digitales Zertifikat oder Identitätszertifikat bezeichnet, enthält den öffentlichen Schlüssel eines öffentlichen/privaten Schlüsselpaars sowie einige andere Metadaten zur Identifizierung des Inhabers (z. B. Name und Standort), der den entsprechenden privaten Schlüssel besitzt.
Hier finden Sie die verschiedenen Schlüsseltypen, die Sie kennen sollten:
- App-Signaturschlüssel:Der Schlüssel, mit dem APKs signiert werden, die auf dem Gerät eines Nutzers installiert sind. Im Rahmen des sicheren Updatemodells von Android ändert sich der Signaturschlüssel während der Lebensdauer Ihrer App nicht. Der App-Signaturschlüssel ist privat und muss geheim gehalten werden. Sie können das Zertifikat jedoch freigeben, das mit Ihrem App-Signaturschlüssel generiert wurde.
Uploadschlüssel:Der Schlüssel, mit dem Sie das App Bundle oder APK signieren, bevor Sie es für die App-Signatur mit Google Play hochladen. Sie müssen den Uploadschlüssel geheim halten. Sie können das Zertifikat, das mit Ihrem Uploadschlüssel generiert wurde, jedoch teilen. Sie können einen Uploadschlüssel auf eine der folgenden Arten generieren:
- Wenn Sie bei der Aktivierung den App-Signaturschlüssel von Google generieren lassen, wird der Schlüssel, mit dem Sie Ihre App für den Release signieren, als Uploadschlüssel festgelegt.
- Wenn Sie Google den App-Signaturschlüssel bei der Aktivierung Ihrer neuen oder vorhandenen Anwendung zur Verfügung stellen, können Sie während oder nach der Aktivierung einen neuen Uploadschlüssel generieren, um die Sicherheit zu erhöhen.
- Wenn Sie keinen neuen Uploadschlüssel generieren, verwenden Sie weiterhin Ihren App-Signaturschlüssel als Uploadschlüssel, um jeden Release zu signieren.
Tipp:Zum Schutz Ihrer Schlüssel sollten Sie darauf achten, dass sich App-Signaturschlüssel und Uploadschlüssel unterscheiden.
Mit API-Anbietern zusammenarbeiten
Sie können das Zertifikat für den App-Signaturschlüssel und den Uploadschlüssel in der Play Console über die Seite Release > Einrichten > App-Signatur herunterladen. Dieser wird verwendet, um öffentliche Schlüssel bei API-Anbietern zu registrieren. Er ist zur Weitergabe vorgesehen, da er Ihren privaten Schlüssel nicht enthält.
Ein Zertifikat-Fingerabdruck ist eine kurze und eindeutige Darstellung eines Zertifikats, die von API-Anbietern neben dem Paketnamen häufig angefordert wird, um eine App für die Nutzung ihres Dienstes zu registrieren. Den MD5-, SHA-1- und SHA-256-Fingerabdruck der Upload- und App-Signaturzertifikate findest du auf der App-Signaturseite der Play Console. Wenn Sie das ursprüngliche Zertifikat (.der
) von derselben Seite herunterladen, können Sie auch andere Fingerabdrücke berechnen lassen.
Debug-Build signieren
Wenn Sie Ihr Projekt über die IDE ausführen oder Fehler beheben, signiert Android Studio Ihre App automatisch mit einem von den Android SDK-Tools generierten Debug-Zertifikat. Wenn Sie Ihr Projekt zum ersten Mal in Android Studio ausführen oder Fehler beheben, erstellt die IDE automatisch den Schlüsselspeicher und das Zertifikat für die Fehlerbehebung in $HOME/.android/debug.keystore
und legt das Schlüsselpasswort und das Schlüsselpasswort fest.
Da das Debugzertifikat von den Build-Tools erstellt wird und von Grund auf nicht sicher ist, akzeptieren die meisten App-Shops (einschließlich des Google Play Store) keine Apps, die mit einem Debug-Zertifikat für die Veröffentlichung signiert sind.
In Android Studio werden die Informationen zur Signatur zur Fehlerbehebung automatisch in einer Signaturkonfiguration gespeichert, damit Sie sie nicht bei jeder Fehlerbehebung eingeben müssen. Eine Signaturkonfiguration ist ein Objekt, das aus allen zum Signieren Ihrer Anwendung erforderlichen Informationen besteht, einschließlich des Speicherorts des Schlüsselspeichers, des Schlüsselspeicherpassworts, des Schlüsselnamens und des Schlüsselpassworts.
Weitere Informationen zum Erstellen und Ausführen von Anwendungen für die Fehlerbehebung finden Sie unter Anwendung erstellen und ausführen.
Ablauf des Debug-Zertifikats
Das selbst signierte Zertifikat, mit dem Ihre App zur Fehlerbehebung signiert wird, verfällt 30 Jahre nach dem Erstellungsdatum. Wenn das Zertifikat abläuft, wird ein Build-Fehler angezeigt.
Um dieses Problem zu beheben, löschen Sie einfach die Datei debug.keystore
, die an einem der folgenden Speicherorte gespeichert ist:
~/.android/
unter OS X und LinuxC:\Documents and Settings\user\.android\
unter Windows XPC:\Users\user\.android\
für Windows Vista und Windows 7, 8 und 10
Wenn Sie das nächste Mal eine Debug-Version Ihrer App erstellen und ausführen, werden von Android Studio ein neuer Schlüsselspeicher und Schlüssel zur Fehlerbehebung generiert.
App für die Veröffentlichung bei Google Play signieren
Wenn Sie bereit sind, Ihre App zu veröffentlichen, müssen Sie sie signieren und in einen App-Shop wie Google Play hochladen. Wenn Sie Ihre App zum ersten Mal bei Google Play veröffentlichen, müssen Sie auch die Play App-Signatur konfigurieren. Die Play App-Signatur ist für Apps, die vor August 2021 erstellt wurden, optional. In diesem Abschnitt erfahren Sie, wie Sie Ihre App ordnungsgemäß für den Release signieren und die Play App-Signatur konfigurieren.
Uploadschlüssel und Schlüsselspeicher generieren
Wenn du noch keinen Uploadschlüssel hast, der für die Konfiguration der Play App-Signatur nützlich ist, kannst du mit Android Studio einen so generieren:
- Klicken Sie in der Menüleiste auf Erstellen > Signiertes Bundle/APK generieren.
- Wählen Sie im Dialogfeld Signiertes Bundle oder APK generieren die Option Android App Bundle oder APK aus und klicken Sie auf Weiter.
- Klicken Sie unter dem Feld für Schlüsselspeicherpfad auf Neu erstellen.
Geben Sie im Fenster Neuer Schlüsselspeicher die folgenden Informationen für Schlüsselspeicher und Schlüssel an, wie in Abbildung 2 dargestellt.
Abbildung 2: Erstellen Sie in Android Studio einen neuen Uploadschlüssel und einen neuen Schlüsselspeicher.
Schlüsselspeicher
- Schlüsselspeicherpfad: Wählen Sie den Speicherort aus, an dem Ihr Schlüsselspeicher erstellt werden soll.
Außerdem sollte ein Dateiname mit der Endung
.jks
an das Ende des Pfadpfads angehängt werden. - Passwort: Erstellen und bestätigen Sie ein sicheres Passwort für Ihren Schlüsselspeicher.
- Schlüsselspeicherpfad: Wählen Sie den Speicherort aus, an dem Ihr Schlüsselspeicher erstellt werden soll.
Außerdem sollte ein Dateiname mit der Endung
Key
- Alias:Geben Sie einen eindeutigen Namen für den Schlüssel ein.
- Passwort:Erstellen Sie ein sicheres Passwort für Ihren Schlüssel und bestätigen Sie es. Dies sollte mit Ihrem Schlüsselspeicherpasswort übereinstimmen. Weitere Informationen finden Sie unter Bekanntes Problem.
- Gültigkeit (Jahre): Legen Sie fest, wie lange Ihr Schlüssel gültig sein soll. Der Schlüssel sollte mindestens 25 Jahre gültig sein, damit Sie App-Updates über die gesamte Lebensdauer Ihrer App signieren können.
- Zertifikat:Geben Sie einige Informationen über sich selbst für das Zertifikat ein. Diese Informationen werden nicht in Ihrer App angezeigt, sind aber im Zertifikat als Teil des APK enthalten.
Wenn Sie das Formular ausgefüllt haben, klicken Sie auf OK.
Wenn Sie Ihre Anwendung mit dem Uploadschlüssel erstellen und signieren möchten, fahren Sie mit dem Abschnitt App mit dem Uploadschlüssel signieren fort. Wenn Sie nur den Schlüssel und den Schlüsselspeicher generieren möchten, klicken Sie auf Abbrechen.
App mit dem Schlüssel signieren
Wenn Sie bereits einen Uploadschlüssel haben, verwenden Sie ihn zum Signieren Ihrer App. Wenn Ihre App bereits mit einem vorhandenen App-Signaturschlüssel signiert und im Google Play Store veröffentlicht wurde, verwenden Sie ihn zum Signieren Ihrer App. Sie können später einen separaten Uploadschlüssel bei Google Play generieren und registrieren, um nachfolgende Updates für Ihre App zu signieren und hochzuladen.
So signieren Sie Ihre App mit Android Studio:
- Wenn das Dialogfeld Signiertes Bundle oder APK generieren derzeit nicht geöffnet ist, klicken Sie auf Build > Signiertes Bundle/APK generieren.
- Wählen Sie im Dialogfeld Signiertes Bundle oder APK generieren entweder Android App Bundle oder APK aus und klicken Sie auf Weiter.
- Wählen Sie im Drop-down-Menü ein Modul aus.
Geben Sie den Pfad zu Ihrem Schlüsselspeicher und den Alias für Ihren Schlüssel an und geben Sie die Passwörter für beide ein. Wenn Sie Ihren Uploadschlüsselspeicher und -schlüssel noch nicht vorbereitet haben, erstellen Sie zuerst einen Uploadschlüssel und einen Schlüsselspeicher und kehren Sie dann zurück, um diesen Schritt abzuschließen.
Abbildung 3. Signieren Sie Ihre App mit dem Uploadschlüssel.
Klicke auf Weiter.
Wählen Sie im nächsten Fenster (siehe Abbildung 4) einen Zielordner für die signierte Anwendung und dann den Build-Typ sowie gegebenenfalls die Produktvarianten aus.
Wenn Sie ein APK erstellen und signieren, müssen Sie auswählen, welche Signaturversionen Ihre App unterstützen soll. Weitere Informationen finden Sie unter App-Signaturschemas.
Klicken Sie auf Eintragen.
![](https://developer.android.google.cn/static/studio/images/publish/generate_signed_bundle_popup-2x.png?authuser=6&hl=de)
Abbildung 5: Klicken Sie auf den Link im Pop-up, um Ihr App Bundle zu analysieren oder zu suchen.
Nachdem Android Studio Ihre signierte App erstellt hat, können Sie Ihre App entweder suchen oder analysieren. Klicken Sie dazu auf die entsprechende Option in der Pop-up-Benachrichtigung (siehe Abbildung 5).
Jetzt kannst du deine App für die Play App-Signatur aktivieren und deine App zur Veröffentlichung hochladen. Wenn Sie die App-Veröffentlichung zum ersten Mal verwenden, sollten Sie zuerst die Übersicht zur Einführung lesen. Andernfalls fahren Sie mit der Seite zum Hochladen Ihrer App in die Play Console fort.
Play App-Signatur verwenden
Wie weiter oben auf dieser Seite beschrieben, ist die Konfiguration der Play App-Signatur erforderlich, um Ihre App für den Vertrieb über Google Play zu signieren. Eine Ausnahme bilden Apps, die vor August 2021 erstellt wurden und für die möglicherweise weiterhin selbst signierte APKs bereitgestellt werden. Welche Schritte Sie ausführen müssen, hängt davon ab, ob Ihre App noch nicht bei Google Play veröffentlicht wurde oder ob Ihre App bereits signiert und vor August 2021 mit einem vorhandenen App-Signaturschlüssel veröffentlicht wurde.
Neue App konfigurieren
So konfigurieren Sie die Signatur für eine App, die noch nicht bei Google Play veröffentlicht wurde:
- Generieren Sie einen Uploadschlüssel, sofern noch nicht geschehen, und signieren Sie Ihre App damit.
- Melden Sie sich in der Play Console an.
- Führen Sie die Schritte zum Vorbereiten und Einführen eines Release aus, um einen neuen Release zu erstellen.
- Nachdem Sie einen Release-Track ausgewählt haben, konfigurieren Sie die App-Signatur im Abschnitt App-Signatur so:
- Sie müssen nichts tun, damit Google Play einen App-Signaturschlüssel für Sie generiert und zum Signieren Ihrer App verwendet. Der Schlüssel, mit dem Sie Ihren ersten Release signieren, wird Ihr Uploadschlüssel und Sie sollten ihn zum Signieren zukünftiger Releases verwenden.
- Wenn Sie denselben Schlüssel wie eine andere App in Ihrem Entwicklerkonto verwenden möchten, wählen Sie App-Signaturschlüssel ändern > Denselben Schlüssel wie für eine andere App in diesem Konto verwenden aus. Wählen Sie dann eine App aus und klicken Sie auf Weiter.
- Wenn Sie einen eigenen Signaturschlüssel für Google zum Signieren Ihrer App zur Verfügung stellen möchten, wählen Sie App-Signaturschlüssel ändern und dann eine der Export- und Upload-Optionen aus, mit denen Sie einen privaten Schlüssel und das zugehörige öffentliche Zertifikat sicher hochladen können.
Klicken Sie im Abschnitt App Bundles auf Browse files (Dateien suchen), um die App zu suchen und hochzuladen, die Sie mit dem Uploadschlüssel signiert haben. Weitere Informationen zum Veröffentlichen Ihrer App finden Sie unter Release vorbereiten und einführen. Wenn Sie Ihre App freigeben, nachdem Sie die Play App-Signatur konfiguriert haben, wird der Signaturschlüssel von Google Play generiert und verwaltet (sofern Sie keinen vorhandenen Schlüssel hochladen). Signiere nachfolgende Updates deiner App einfach mit dem Uploadschlüssel deiner App, bevor du sie bei Google Play hochlädst.
Wenn Sie einen neuen Uploadschlüssel für Ihre Anwendung erstellen müssen, lesen Sie den Abschnitt zum Zurücksetzen eines verlorenen oder manipulierten privaten Uploadschlüssels.
Vorhandene App anmelden
Wenn Sie eine App aktualisieren, die bereits mit einem vorhandenen App-Signaturschlüssel bei Google Play veröffentlicht wurde, können Sie sich so für die Play App-Signatur anmelden:
- Melden Sie sich in der Play Console an und rufen Sie Ihre App auf.
- Klicken Sie im Menü auf der linken Seite auf Release > Einrichten > App-Signatur.
- Lesen Sie sich ggf. die Nutzungsbedingungen durch und wählen Sie Akzeptieren aus.
- Wählen Sie die Option aus, die den Signaturschlüssel am besten beschreibt, den Sie bei Google Play hochladen möchten, und folgen Sie der Anleitung. Wenn Sie beispielsweise einen Java-Schlüsselspeicher für Ihren Signaturschlüssel verwenden, wählen Sie Neuen App-Signaturschlüssel aus dem Java-Schlüsselspeicher hochladen aus und folgen Sie der Anleitung zum Herunterladen und Ausführen des PEPK-Tools. Laden Sie anschließend die generierte Datei mit Ihrem verschlüsselten Schlüssel hoch.
- Klicke auf Anmelden.
Es sollte jetzt eine Seite mit den Details zum Signieren und Hochladen von Zertifikaten für Ihre Anwendung angezeigt werden. Google Play signiert deine App jetzt mit deinem vorhandenen Schlüssel, wenn sie für Nutzer bereitgestellt wird. Einer der wichtigsten Vorteile von Play App Signing ist jedoch die Möglichkeit, den Schlüssel zum Signieren des Artefakts, das du bei Google Play hochlädst, vom Schlüssel zu trennen, mit dem Google Play deine App für den Vertrieb an Nutzer signiert. Führen Sie deshalb die Schritte im nächsten Abschnitt aus, um einen separaten Uploadschlüssel zu generieren und zu registrieren.
Uploadzertifikat generieren und registrieren
Wenn du eine App veröffentlichst, die nicht mit einem Uploadschlüssel signiert ist, bietet die Google Play Console die Möglichkeit, eine App für zukünftige Updates der App zu registrieren. Obwohl dies ein optionaler Schritt ist, empfehlen wir dir, deine App mit einem Schlüssel zu veröffentlichen, der nicht mit dem Schlüssel identisch ist, mit dem Google Play deine App an Nutzer bereitstellt. Auf diese Weise sorgt Google dafür, dass Ihr Signaturschlüssel sicher bleibt, und Sie haben die Möglichkeit, einen verlorenen oder manipulierten privaten Uploadschlüssel zurückzusetzen. In diesem Abschnitt wird beschrieben, wie Sie einen Uploadschlüssel erstellen, ein Uploadzertifikat daraus generieren und dieses Zertifikat für zukünftige Updates Ihrer App bei Google Play registrieren.
Im Folgenden werden die Situationen beschrieben, in denen die Option zum Registrieren eines Uploadzertifikats in der Play Console angezeigt wird:
- Wenn Sie eine neue App veröffentlichen, die mit einem Signaturschlüssel signiert ist, und sie für Play App-Signatur aktivieren
- Wenn Sie eine vorhandene App veröffentlichen, für die die Play App-Signatur bereits aktiviert, aber mit dem Signaturschlüssel signiert wurde.
Wenn du kein Update für eine vorhandene App veröffentlichst, für die die Play App-Signatur bereits aktiviert ist, und du ein Uploadzertifikat registrieren möchtest, führe die folgenden Schritte aus und fahre mit dem Abschnitt zum Zurücksetzen eines verlorenen oder manipulierten privaten Uploadschlüssels fort.
Generieren Sie einen Uploadschlüssel und einen Schlüsselspeicher, falls noch nicht geschehen.
Nachdem Sie den Uploadschlüssel und den Schlüsselspeicher erstellt haben, müssen Sie mit keytool
und dem folgenden Befehl aus dem Uploadschlüssel ein öffentliches Zertifikat generieren:
$ keytool -export -rfc -keystore your-upload-keystore.jks -alias upload-alias -file output_upload_certificate.pem
Du hast jetzt dein Uploadzertifikat und kannst es bei Google registrieren, wenn du in der Play Console dazu aufgefordert wirst oder beim Zurücksetzen deines Uploadschlüssels.
App-Signaturschlüssel aktualisieren
Unter bestimmten Umständen kann es sinnvoll sein, den Signaturschlüssel Ihrer App zu ändern. Dies ist beispielsweise der Fall, wenn Sie einen kryptografisch stärkeren Schlüssel wünschen oder Ihr Signaturschlüssel manipuliert wurde. Da Nutzer Ihre Anwendung jedoch nur aktualisieren können, wenn das Update mit demselben Signaturschlüssel signiert ist, ist es schwierig, den Signaturschlüssel für eine bereits veröffentlichte Anwendung zu ändern.
Wenn du deine App bei Google Play veröffentlichst, kannst du den Signaturschlüssel für deine veröffentlichte App über die Play Console aktualisieren. Der neue Schlüssel wird zum Signieren von Installationen und App-Updates unter Android 13 und höher verwendet, während der ältere App-Signaturschlüssel zum Signieren von Updates für Nutzer früherer Android-Versionen verwendet wird.
Weitere Informationen finden Sie unter App-Signaturschlüssel aktualisieren.
Verlorenen oder manipulierten privaten Uploadschlüssel zurücksetzen
Wenn du deinen privaten Uploadschlüssel verloren hast oder er manipuliert wurde, kannst du einen neuen erstellen und in der Play Console das Zurücksetzen des Uploadschlüssels anfordern.
Build-Prozess so konfigurieren, dass deine App automatisch signiert wird
In Android Studio können Sie Ihr Projekt so konfigurieren, dass die Release-Version Ihrer App während des Build-Prozesses automatisch signiert. Dazu erstellen Sie eine Signaturkonfiguration und weisen sie dem Release-Build-Typ zu. Eine Signaturkonfiguration besteht aus einem Schlüsselspeicher-Speicherort, einem Schlüsselspeicherpasswort, einem Schlüsselalias und einem Schlüsselpasswort. Führen Sie die folgenden Schritte aus, um eine Signaturkonfiguration zu erstellen und sie Ihrem Release-Build-Typ mithilfe von Android Studio zuzuweisen:
- Klicken Sie im Fenster Projekt mit der rechten Maustaste auf Ihre App und dann auf Moduleinstellungen öffnen.
- Klicken Sie im Fenster Projektstruktur im linken Bereich unter Module auf das Modul, das Sie signieren möchten.
- Klicken Sie auf den Tab Signing (Signatur) und dann auf Add (Hinzufügen)
.
-
Wählen Sie Ihre Schlüsselspeicherdatei aus, geben Sie einen Namen für diese Signaturkonfiguration ein, da Sie auch mehrere erstellen können, und geben Sie die erforderlichen Informationen ein.
Abbildung 7: Das Fenster zum Erstellen einer neuen Signaturkonfiguration.
- Klicken Sie auf den Tab Build-Typen.
- Klicken Sie auf den Release-Build.
-
Wählen Sie unter Signaturkonfiguration die soeben erstellte Signaturkonfiguration aus.
Abbildung 8: Wählen Sie eine Signaturkonfiguration in Android Studio aus.
- Klicke auf OK.
Jedes Mal, wenn Sie Ihren Release-Build-Typ durch Auswahl einer Option unter Build > Build-Bundle(s) / APK(s) in Android Studio erstellen, signiert die IDE Ihre App automatisch mit der von Ihnen angegebenen Signaturkonfiguration. Sie finden das signierte APK oder App-Bundle im Projektverzeichnis für das Modul, das Sie erstellen, im Verzeichnis build/outputs/
.
Wenn Sie eine Signaturkonfiguration erstellen, werden die Signaturinformationen in den Gradle-Build-Dateien im Nur-Text-Format hinzugefügt. Wenn Sie in einem Team arbeiten oder Ihren Code öffentlich freigeben, sollten Sie Ihre Signaturinformationen sicher aufbewahren. Entfernen Sie sie dazu aus den Build-Dateien und speichern Sie sie separat. Weitere Informationen zum Entfernen der Signaturinformationen aus Ihren Build-Dateien finden Sie unter Signaturinformationen aus Build-Dateien entfernen. Weitere Informationen zum Schutz Ihrer Signaturinformationen finden Sie unter Schlüssel sicher aufbewahren unten.
Jede Produktvariante unterschiedlich signieren
Wenn Ihre App Produktvarianten verwendet und Sie jede Geschmacksrichtung unterschiedlich signieren möchten, können Sie zusätzliche Signaturkonfigurationen erstellen und sie nach Geschmack zuweisen:
- Klicken Sie im Fenster Projekt mit der rechten Maustaste auf Ihre App und dann auf Moduleinstellungen öffnen.
- Klicken Sie im Fenster Projektstruktur im linken Bereich unter Module auf das Modul, das Sie signieren möchten.
- Klicken Sie auf den Tab Signing (Signatur) und dann auf Add (Hinzufügen)
.
-
Wählen Sie Ihre Schlüsselspeicherdatei aus, geben Sie einen Namen für diese Signaturkonfiguration ein, da Sie auch mehrere erstellen können, und geben Sie die erforderlichen Informationen ein.
Abbildung 10: Das Fenster zum Erstellen einer neuen Signaturkonfiguration.
- Wiederholen Sie die Schritte 3 und 4 nach Bedarf, bis Sie alle Signaturkonfigurationen erstellt haben.
- Klicken Sie auf den Tab Flavors.
- Klicken Sie auf die Flavor, die Sie konfigurieren möchten, und wählen Sie dann die entsprechende Signaturkonfiguration aus dem Drop-down-Menü Signierungskonfiguration aus.
Abbildung 11. Konfigurieren Sie die Signatureinstellungen nach Produktsorte.
Wiederholen Sie diese Schritte, um weitere Produktsorten zu konfigurieren.
- Klicke auf OK.
Du kannst deine Signatureinstellungen auch in den Gradle-Konfigurationsdateien festlegen. Weitere Informationen finden Sie unter Signatureinstellungen konfigurieren.
Signaturbericht ausführen
Führen Sie in Android Studio die Gradle-Aufgabe signingReport
aus, um Signaturinformationen für jede Variante Ihrer App zu erhalten:
- Wählen Sie View > Tool Windows > Gradle aus, um das Fenster mit dem Gradle-Tool zu öffnen.
- Wählen Sie IhreApp > Tasks > Android > signatureReport aus, um den Bericht zu erstellen.
Signaturschlüssel selbst verwalten
Wenn Sie die Play App-Signatur nicht aktivieren möchten (nur für Apps, die vor August 2021 erstellt wurden), können Sie Ihren eigenen App-Signaturschlüssel und Schlüsselspeicher verwalten. Denken Sie daran, dass Sie für die Sicherung des Schlüssels und des Schlüsselspeichers selbst verantwortlich sind. Außerdem wird deine App nicht mehr Android App Bundles, Play Feature Delivery und Play Asset Delivery unterstützen.
Wenn Sie einen eigenen Schlüssel und Schlüsselspeicher erstellen möchten, müssen Sie zuerst ein starkes Passwort für den Schlüsselspeicher und ein separates starkes Passwort für jeden im Schlüsselspeicher gespeicherten privaten Schlüssel auswählen. Sie müssen Ihren Schlüsselspeicher an einem sicheren Ort aufbewahren. Wenn Sie den Zugriff auf Ihren App-Signaturschlüssel verlieren oder Ihr Schlüssel manipuliert wird, kann Google den App-Signaturschlüssel nicht für Sie abrufen. Außerdem können Sie Nutzern keine neuen Versionen Ihrer App als Updates für die ursprüngliche App zur Verfügung stellen. Weitere Informationen finden Sie unter Schlüssel sicher aufbewahren.
Wenn Sie Ihren eigenen App-Signaturschlüssel und Schlüsselspeicher verwalten, signieren Sie Ihr APK lokal mit Ihrem App-Signaturschlüssel und laden es direkt in den Google Play Store zum Vertrieb hoch (siehe Abbildung 12).
Abbildung 12: App signieren, wenn du deinen eigenen App-Signaturschlüssel verwaltest
Wenn Sie Play App-Signatur verwenden, verwahrt Google Ihren Signaturschlüssel sicher und sorgt dafür, dass Ihre Apps korrekt signiert sind und während ihrer gesamten Lebensdauer Updates erhalten können. Wenn Sie sich jedoch dafür entscheiden, Ihren App-Signaturschlüssel selbst zu verwalten, müssen Sie einige Dinge beachten.
Hinweise zum Signieren
Sie sollten Ihre App während der gesamten erwarteten Lebensdauer mit demselben Zertifikat signieren. Dafür gibt es mehrere Gründe:
- App-Upgrade:Wenn das System ein Update für eine App installiert, werden die Zertifikate in der neuen Version mit denen in der vorhandenen Version verglichen. Das System lässt das Update zu, wenn die Zertifikate übereinstimmen. Wenn Sie die neue Version mit einem anderen Zertifikat signieren, müssen Sie der Anwendung einen anderen Paketnamen zuweisen – in diesem Fall installiert der Nutzer die neue Version als komplett neue Anwendung.
- App-Modularität:Android lässt zu, dass APKs, die mit demselben Zertifikat signiert sind, im gleichen Prozess ausgeführt werden, wenn die Apps dies anfordern, sodass das System sie als eine App behandelt. Auf diese Weise können Sie Ihre App in Modulen bereitstellen und Nutzer können jedes Modul unabhängig aktualisieren.
- Code-/Datenfreigabe über Berechtigungen:Android bietet eine signaturbasierte Berechtigungserzwingung, sodass eine App einer anderen App, die mit einem bestimmten Zertifikat signiert ist, Funktionen zur Verfügung stellen kann. Wenn Sie mehrere APKs mit demselben Zertifikat signieren und signaturbasierte Berechtigungsprüfungen verwenden, können Ihre Apps Code und Daten auf sichere Weise freigeben.
Wenn Sie Upgrades für eine App unterstützen möchten, achten Sie darauf, dass der Gültigkeitszeitraum Ihres App-Signaturschlüssels die erwartete Lebensdauer der App überschreitet. Ein Gültigkeitszeitraum von mindestens 25 Jahren wird empfohlen. Nach Ablauf des Gültigkeitszeitraums Ihres Schlüssels können Nutzer kein nahtloses Upgrade auf neue Versionen Ihrer Anwendung mehr durchführen.
Wenn Sie vorhaben, Ihre Apps bei Google Play zu veröffentlichen, muss der Schlüssel, mit dem Sie Ihre App signieren, einen Gültigkeitszeitraum haben, der nach dem 22. Oktober 2033 endet. Google Play erzwingt diese Anforderung, damit Nutzer Anwendungen nahtlos aktualisieren können, wenn neue Versionen verfügbar sind.
Schlüssel sicher aufbewahren
Wenn Sie den App-Signaturschlüssel und den Schlüsselspeicher selbst verwalten und sichern (statt Play App-Signatur zu aktivieren), ist der Schutz Ihres App-Signaturschlüssels sowohl für Sie als auch für die Nutzer von entscheidender Bedeutung. Wenn Sie jemandem erlauben, Ihren Schlüssel zu verwenden, oder wenn Sie Ihren Schlüsselspeicher und Ihre Passwörter an einem ungesicherten Ort lassen, damit Dritte sie finden und verwenden können, sind Ihre Authoring-Identität und das Vertrauen des Nutzers gefährdet.
Sollte ein Dritter es schaffen, Ihren App-Signaturschlüssel ohne Ihr Wissen oder Ihre Zustimmung zu erhalten, könnte er Apps signieren und vertreiben, die Ihre echten Apps böswillig ersetzen oder beschädigen. Eine solche Person könnte auch Apps unter Ihrer Identität signieren und vertreiben, die andere Apps oder das System selbst angreifen oder Nutzerdaten korrumpieren oder stehlen.
Der private Schlüssel ist zum Signieren aller zukünftigen Versionen deiner App erforderlich. Wenn du deinen Schlüssel verlierst oder verlegst, kannst du keine Updates für deine vorhandene App veröffentlichen. Ein zuvor generierter Schlüssel kann nicht neu generiert werden.
Ihr Ruf als Entwicklerentität hängt davon ab, dass Sie Ihren App-Signaturschlüssel jederzeit ordnungsgemäß sichern, bis er abgelaufen ist. Hier sind einige Tipps zum Schutz Ihres Schlüssels:
- Wählen Sie starke Passwörter für Schlüsselspeicher und Schlüssel aus.
- Geben Sie Ihren privaten Schlüssel nicht an andere weiter und geben Sie sie nicht an Unbefugte weiter.
- Bewahren Sie die Schlüsselspeicherdatei mit Ihrem privaten Schlüssel an einem sicheren Ort auf.
Im Allgemeinen gilt: Wenn Sie beim Generieren, Verwenden und Speichern Ihres Schlüssels die allgemeinen Vorkehrungen treffen, bleibt er sicher.
Signaturinformationen aus Build-Dateien entfernen
Wenn Sie eine Signaturkonfiguration erstellen, fügt Android Studio Ihre Signaturinformationen im Nur-Text-Format zu den build.gradle
-Dateien des Moduls hinzu. Wenn Sie mit einem Team zusammenarbeiten oder Ihren Code als Open Source zur Verfügung stellen, sollten Sie diese vertraulichen Daten aus den Build-Dateien verschieben, damit andere nicht leicht darauf zugreifen können. Erstellen Sie dazu eine separate Attributdatei zum Speichern sicherer Informationen und verweisen Sie in Ihren Build-Dateien so auf diese Datei:
- Erstellen Sie eine Signaturkonfiguration und weisen Sie sie einem oder mehreren Build-Typen zu. In dieser Anleitung wird davon ausgegangen, dass Sie eine Einmalanmeldungskonfiguration für Ihren Release-Build-Typ konfiguriert haben, wie oben im Abschnitt Build-Prozess für das automatische Signieren Ihrer App konfigurieren beschrieben.
- Erstellen Sie im Stammverzeichnis Ihres Projekts eine Datei mit dem Namen
keystore.properties
. Diese Datei muss folgende Informationen zur Signatur enthalten:storePassword=myStorePassword keyPassword=mykeyPassword keyAlias=myKeyAlias storeFile=myStoreFileLocation
- Fügen Sie in der Datei
build.gradle
des Moduls Code hinzu, um die Dateikeystore.properties
vor dem Blockandroid {}
zu laden.Groovig
... // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. def keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. def keystoreProperties = new Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ... }
Kotlin
... import java.util.Properties import java.io.FileInputStream // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. val keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. val keystoreProperties = Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(FileInputStream(keystorePropertiesFile)) android { ... }
Hinweis: Sie können die Datei
keystore.properties
an einem anderen Speicherort speichern, z. B. im Modulordner und nicht im Stammordner des Projekts oder auf Ihrem Build-Server, wenn Sie ein Continuous-Integration-Tool verwenden. Ändern Sie in diesem Fall den Code oben so, dasskeystorePropertiesFile
korrekt unter Verwendung des tatsächlichen Speicherorts derkeystore.properties
-Datei initialisiert wird. - Sie können mit der Syntax
keystoreProperties['propertyName']
auf Attribute verweisen, die inkeystoreProperties
gespeichert sind. Ändern Sie den BlocksigningConfigs
der Dateibuild.gradle
Ihres Moduls so, dass er mit dieser Syntax auf die inkeystoreProperties
gespeicherten Signaturinformationen verweist.Groovig
android { signingConfigs { config { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } ... }
Kotlin
android { signingConfigs { create("config") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } ... }
- Öffnen Sie das Fenster Build-Varianten und prüfen Sie, ob der Release-Build-Typ ausgewählt ist.
- Wählen Sie unter Build > Build-Bundle(s) / APK(s) eine Option aus, um ein APK oder App Bundle Ihres Release-Builds zu erstellen.
Die Build-Ausgabe sollte im Verzeichnis
build/outputs/
für Ihr Modul angezeigt werden.
Da Ihre Build-Dateien keine vertraulichen Informationen mehr enthalten, können Sie sie jetzt in die Versionsverwaltung aufnehmen oder in eine freigegebene Codebasis hochladen. Bewahre die Datei keystore.properties
sicher auf. Dazu kann es gehören, dass sie aus Ihrem Versionsverwaltungssystem entfernt werden.