Android-Konzepte (für Webentwickler)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

Webentwickler, die noch nicht mit Android und Google Play vertraut sind, sollten einige Details beachten. beachten sollten. Zu diesem Thema gibt es bereits zahlreiche Ressourcen und Dokumentationen. -Team), aber an dieser Stelle möchten wir einige wichtige Konzepte und ihren Bezug zu Bubblewrap hervorheben.

Upload- und Signaturschlüssel

Wenn Sie vorhaben, Bubblewrap zum Generieren eines Android App Bundles (AAB) zu verwenden (Hinweis: Ab August 2021 müssen alle neuen Apps bei Google Play das Android App Bundle-Format verwenden) oder APK hochladen und bei Google Play veröffentlichen kannst, musst du deine App mit einem Signaturschlüssel signieren. Google Bei Google Play haben Sie zwei Möglichkeiten, dies zu beseitigen:

  • Play App-Signatur (dringend empfohlen): Google verwaltet und schützt den Signaturschlüssel Ihrer App. für Sie. Damit werden Ihre APKs für den Vertrieb signiert. Für die Play App-Signatur werden zwei Schlüssel verwendet. Die „App“ Signaturschlüssel“ die Google für Sie verwaltet, und den Uploadschlüssel die Sie behalten und auch weiterhin nur für Sie sichtbar sind. Mit dem Uploadschlüssel signierst du deine App für den Upload in die Play Console. Dieses kannst du deinen Uploadschlüssel zurücksetzen, falls er verloren geht oder kompromittiert wird. den Google Play-Kundenservice kontaktieren. Derzeit ist Google Play können Sie Ihre App als AAB oder APK hochladen: <ph type="x-smartling-placeholder">
      </ph>
    • Android App Bundle (AAB): Wenn Sie ein AAB in die Play Console hochladen, verschieben Sie die Erstellung und Generierung von APKs auf die Google Play Store Wenn ein Nutzer deine App herunterlädt und installiert, wird sie über Google Play bereitgestellt. als signiertes APK. Daher muss das Signieren der APKs ebenfalls Google Play Wenn Sie Ihre App also als AAB in die Play Console hochladen, müssen Sie die Play App-Signatur verwenden.
    • APK: Bei APKs können Sie sich für die Play App-Signatur anmelden. Google Play-App aktivieren Das Signieren wird dringend empfohlen, da es die Sicherheit Ihres Signaturschlüssels erhöht. Wie erwähnt müssen bei Google Play bald alle neuen Apps im AAB-Format hochgeladen werden. empfehlen wir, dies zu tun, anstatt APKs hochzuladen.
  • Eigenen Signaturschlüssel verwalten: Wenn Sie Ihren eigenen Schlüssel verwalten, aber nicht der Play App zustimmen Beim Signieren sind Sie allein für den Signaturschlüssel Ihrer App verantwortlich. Anders als bei der Play App-Signatur kann er bei Verlust des Schlüssels nicht zurückgesetzt werden. Wenn Sie den Signaturschlüssel Ihrer App verlieren, können Sie Ihre App auch nicht mehr aktualisieren.

Wenn Sie bei der Einrichtung von bubblewrap init zum Abschnitt Informationen zum Signierschlüssel (5/5) gelangen, gehen Sie so vor: werden Sie aufgefordert, „Schlüsselspeicherstandort“ und „Schlüsselname“ einzugeben oder die Standardwerte zu verwenden. Die Der Standardspeicherort ist die Datei android.keystore in Ihrem Projektverzeichnis. Schlüsselname ist android. Wenn Bubblewrap keinen vorhandenen Schlüsselspeicher mit diesem Schlüsselnamen am wird eines für Sie erstellt und Sie werden zur Eingabe von Passwörtern aufgefordert. Notieren Sie sich die Passwörter. da sie während des Build-Prozesses benötigt werden (bubblewrap build). Hier wird mithilfe von um Ihre App zu signieren. Wenn Sie die Play App-Signatur aktivieren, wird der von Bubblewrap generiert und zum Signieren Ihrer App verwendet wird. Ob Sie sich für die Verwendung des Von Bubblewrap erzeugten Schlüssel als Signatur- oder Uploadschlüssel verwendet werden. Sie sollten den Schlüssel schützen und vertraulich halten. Wir raten davon ab, sie zur Versionsverwaltung zu verwenden. Begrenzen Sie stattdessen die Anzahl der Personen mit darauf zugreifen können.

Digital Asset Links sind erforderlich, um die Beziehung zwischen Ihrer Website und Ihrem Android-Gerät Um sicherzustellen, dass deine von Bubblewrap generierte Android-App ordnungsgemäß verifiziert wird und als Vertrauenswürdige Webaktivitäten (anstelle eines benutzerdefinierten Chrome-Tabs) müssen Sie den entsprechenden Schlüssel zu Ihre assetlinks.json-Datei. Laden Sie es dann auf Ihre Website unter .well-known/assetlinks.json hoch. (relativ zum Stamm). Die Datei assetlinks.json muss folgendes Format haben:

[{
 "relation": ["delegate_permission/common.handle_all_urls"],
 "target": {
   "namespace": "android_app",
   "package_name": "com.your.package_name",
   "sha256_cert_fingerprints": [
     "XX:XX:XX:..."
   ]
 }
}]

Fingerabdruck des SHA256-Zertifikats abrufen

Zum Erstellen der Datei assetlinks.json muss der SHA-256-Zertifikat-Fingerabdruck verknüpft sein mit dem Signaturschlüssel Ihrer App. Wichtig ist, dass die Fingerabdrücke, die mit der Ihre Signatur- und Uploadschlüssel unterscheiden sich. Es ist wichtig, Bedenke diese Unterscheidung, insbesondere wenn du bemerkst, dass deine App als benutzerdefinierter Chrome-Tab gestartet wird (mit Browserleiste sichtbar). Dann enthält die Datei assetlinks.json wahrscheinlich nicht die Fingerabdruck, der dem entsprechenden Schlüssel entspricht.

Es ist sinnvoll, sowohl den Fingerabdruck Ihres Signatur- und Uploadzertifikats als auch den Fingerabdruck Ihres Signaturzertifikats in Ihrer assetlinks.json-Datei zu haben um Fehler in Ihrer App einfacher lokal zu beheben. Weitere Informationen finden Sie unten unter Weitere Tasten hinzufügen. Informationen dazu, wie beide Schlüssel in der Datei assetlinks.json vorhanden sind.

Es gibt verschiedene Möglichkeiten, den Fingerabdruck zu erhalten. Diese werden in den nächsten Abschnitten erläutert. Sie erhalten in der Regel dieselben Fingerabdrücke, sodass Sie die Methode wählen können, die am besten praktisch sein.

Über die Play Console

Je nachdem, ob Sie die Play App-Signatur aktivieren oder nicht, haben Sie möglicherweise ein oder zwei Schlüssel. Abrufen Den entsprechenden SHA256-Fingerabdruck für jeden Schlüssel:

  1. Rufe die Play Console auf.
  2. Wählen Sie die gewünschte App aus.
  3. Klicken Sie links im Navigationsmenü unter Release auf Einrichten -> App-Integrität.
  4. Kopieren Sie das SHA256 für den entsprechenden Schlüssel:

Entsprechenden SHA256-Zertifikat-Fingerabdruck für Ihren Signatur- oder Uploadschlüssel abrufen

  • Signing key (Signaturschlüssel): Kopieren Sie den SHA256-Fingerabdruck für das Zertifikat für den App-Signaturschlüssel. Dieses Fingerabdruck Ihrer App entsprechen, wenn Sie sie aus dem Google Play Store herunterladen. Google Play vertreibt deine mit dem Signaturschlüssel signierte App.

  • Uploadschlüssel: Kopieren Sie den SHA256-Fingerabdruck für Zertifikat für Uploadschlüssel. Dieses Fingerabdruck entspricht Ihrer App, wenn Sie ihn lokal installieren (über ADB über USB für ) Dieses APK auf deinem lokalen Computer wurde von Bubblewrap erstellt und daher von den Schlüssel, den er für Sie erstellt hat (während der init-Einrichtung). Denken Sie daran, dass dies möglicherweise Signaturschlüssel für Ihre lokal installierte Anwendung, der aber tatsächlich zum Uploadschlüssel wird einmal wenn Sie Ihre App über Google Play veröffentlichen.

Über keytool

keytool ist ein Schlüssel und Tool zur Zertifikatverwaltung. Sie können das Keytool verwenden, um den SHA 256-Fingerabdruck zu extrahieren, der mit das APK oder AAB Bubblewrap generiert hat. Dieser Fingerabdruck gilt für den lokalen Signaturschlüssel. Wenn Sie Ihre App bei Google Play hochladen und sich für Play App Signing anmelden, wird dieser Schlüssel zum Uploadschlüssel.

keytool -printcert -jarfile [path to APK or AAB] | grep SHA256

Eine weitere Möglichkeit, die richtige Digital Asset Links-Datei für Ihre App abzurufen, besteht darin, das Asset-Link-Tool zu verwenden:

  1. Installieren Sie das Asset-Link-Tool aus dem Play Store.
  2. Laden Sie Ihre App auf demselben Gerät aus dem Google Play Store herunter oder installieren Sie sie lokal.
  3. Öffnen Sie die Asset-Link-Tool-App. Sie sehen eine Liste aller Apps, die auf Ihrem Gerät nach Paketnamen. Liste nach der Anwendungs-ID filtern, die Sie zuvor ausgewählt haben bubblewrap init und klicke auf diesen Eintrag.
  4. Es wird eine Seite mit der Signatur Ihrer App und einem generierten Digital Asset Link angezeigt. Klicken Sie auf das Über die Schaltfläche „Kopieren“ oder „Teilen“ unten können Sie die Inhalte nach Belieben exportieren (z.B. in Google Notizen speichern, per E-Mail an sich selbst senden.)

Dasselbe gilt für Signatur- oder Uploadschlüssel. Wenn Sie Ihre App über die Google Play Store verwendet haben, ruft das Asset Link-Tool den Fingerabdruck für den Signaturschlüssel Ihrer App ab. Wenn Sie die App direkt von Ihrem lokalen Computer aus installiert haben, ist der Fingerabdruck für den Schlüssel Bubblewrap erstellt.

Prüfen Sie nach dem Hochladen, ob Sie in einem Browser auf die Asset-Link-Datei zugreifen können. Prüfen Sie, ob https://example.com/.well-known/assetlinks.json zu der Datei passt, die Sie gerade hochgeladen haben.

Jekyll-basierte Websites

Wenn Ihre Website von Jekyll generiert wird (z. B. GitHub Pages), müssen Sie eine Zeile Konfiguration, sodass das Verzeichnis .well-known in der Ausgabe enthalten ist. Die GitHub-Hilfe enthält weitere Informationen zu diesem Thema. Erstellen Sie im Stammverzeichnis Ihrer Website eine Datei mit dem Namen _config.yml (oder fügen Sie sie hinzu, falls sie bereits vorhanden ist) und Geben Sie Folgendes ein:

# Folders with dotfiles are ignored by default.
include: [.well-known]

Weitere Schlüssel hinzufügen

Eine Digital Asset Link-Datei kann mehr als eine App enthalten. Für jede App kann sie mehr als einem Schlüssel. Um beispielsweise einen zweiten Schlüssel hinzuzufügen, verwenden Sie einfach die Methode Asset-Link-Tool und fügen ihn als zweiten Eintrag hinzu. Der Code in Chrome, der diese JSON-Datei parst, ist recht streng. Achten Sie daher darauf, nicht versehentlich ein ein zusätzliches Komma am Ende der Liste.

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.your.package_name",
    "sha256_cert_fingerprints": [
      "XX:XX:XX:..."
    ]
  }
},{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.your.package_name",
    "sha256_cert_fingerprints": [
      "XX:XX:XX:..."
    ]
  }
}]

Fehlerbehebung

Chrome protokolliert den Grund, warum die Digital Asset Links-Überprüfung fehlschlägt. Sie können die Protokolle auf einem Android-Gerät mit adb logcat. Wenn Sie unter Linux/Mac entwickeln, können Sie die relevanten Protokolle von einem verbundenen Gerät anzeigen. durch:

> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links

Wenn beispielsweise die Meldung Statement failure matching fingerprint. angezeigt wird, sollten Sie die Methode Asset Link-Tool, um die Signatur Ihrer App zu sehen und sicherzustellen, dass sie mit der Signatur in assetlinks.json übereinstimmt -Datei.