Sie können App Distribution in Ihren Android-Build-Prozess einbinden, indem Sie das App Distribution-Gradle-Plug-in verwenden. Mit dem Plug-in können Sie Ihre Tester und Versionshinweise in der Gradle-Datei Ihrer App angeben und so Verteilungen für verschiedene Build-Typen und Varianten Ihrer App konfigurieren.
In dieser Anleitung wird beschrieben, wie Sie Android-App-Bundles (AABs) mithilfe des App Distribution-Gradle-Plug-ins an Tester verteilen.
App Distribution wird in den Dienst für die interne App-Freigabe von Google Play eingebunden, um die von Ihnen hochgeladenen AABs zu verarbeiten und APKs bereitzustellen, die für die Gerätekonfigurationen Ihrer Tester optimiert sind. Wenn Sie AABs verteilen, haben Sie folgende Möglichkeiten:
Sie können optimierte APKs (bereitgestellt von Google Play) ausführen, die für die Geräte Ihrer Tester optimiert sind.
Gerätespezifische Probleme erkennen und beheben
App-Bundle-Funktionen wie Play Feature Delivery und Play Asset Delivery testen.
Reduzieren Sie die Größe der Downloads für Ihre Tester.
Erforderliche Berechtigungen
Wenn Sie AABs in App Distribution hochladen möchten, müssen Sie Ihre Firebase-App mit einer App in Google Play verknüpfen. Sie benötigen die erforderliche Zugriffsebene, um diese Aktionen auszuführen.
Wenn Sie nicht über den erforderlichen Firebase-Zugriff verfügen, können Sie einen Inhaber des Firebase-Projekts bitten, Ihnen die entsprechende Rolle über die IAM-Einstellungen der Firebase Console zuzuweisen. Wenn Sie Fragen zum Zugriff auf Ihr Firebase-Projekt haben, z. B. zum Suchen oder Zuweisen eines Inhabers, lesen Sie die FAQs zu Berechtigungen und Zugriff auf Firebase-Projekte.
Die folgende Tabelle gilt für das Verknüpfen einer Firebase-App mit einer App in Google Play sowie für das Hochladen von AABs.
Aktion in der Firebase Console | Erforderliche IAM-Berechtigung | IAM-Rolle(n) mit den erforderlichen Berechtigungen (standardmäßig) | Zusätzliche erforderliche Rollen |
---|---|---|---|
Firebase-App mit einer App in Google Play verknüpfen | firebase.playLinks.update
|
Eine der folgenden Rollen: | Zugriff auf ein Google Play-Entwicklerkonto als Administrator |
AABs in App Distribution hochladen | firebaseappdistro.releases.update
|
Eine der folgenden Rollen: | –– |
Hinweis
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen. Am Ende dieses Ablaufs haben Sie eine Firebase Android-App in Ihrem Firebase-Projekt.
Wenn Sie keine anderen Firebase-Produkte verwenden, müssen Sie nur ein Projekt erstellen und Ihre App registrieren. Wenn Sie sich für die Verwendung zusätzlicher Produkte entscheiden, müssen Sie alle Schritte unter Firebase Ihrem Android-Projekt hinzufügen ausführen.
Ihre App muss die folgenden Anforderungen erfüllen, um eine Firebase-Verknüpfung zu Google Play zu erstellen und Android App Bundles hochzuladen:
Die App in Google Play und die Firebase-Android-App sind unter demselben Paketnamen registriert.
Die App in Google Play wird im App-Dashboard eingerichtet und über einen der Google Play-Tracks veröffentlicht (interner, geschlossener oder offener Test bzw. Produktion).
Die Überprüfung der App in Google Play ist abgeschlossen und die App wird veröffentlicht. Ihre App wird veröffentlicht, wenn in der Spalte App-Status einer der folgenden Status angezeigt wird: „Interner Test“ (nicht „Entwurf – Interner Test“), „Geschlossener Test“, „Offener Test“ oder „Produktion“.
So verknüpfen Sie Ihre Firebase-Android-App mit Ihrem Google Play-Entwicklerkonto:
Rufen Sie in der Firebase-Konsole die
auf und wählen Sie dann den Tab Integrationen aus. Projekteinstellungen Klicken Sie auf der Karte Google Play auf Verknüpfen.
Wenn Sie bereits Verknüpfungen mit Google Play haben, klicken Sie stattdessen auf Verwalten.Folgen Sie der Anleitung auf dem Bildschirm, um die App Distribution-Integration zu aktivieren und auszuwählen, welche Firebase-Android-Apps mit Google Play verknüpft werden sollen.
Schritt 1: Android-Projekt einrichten
Fügen Sie in Ihrer Gradle-Datei auf Stammebene (Projektebene) (
<project>/build.gradle.kts
oder<project>/build.gradle
) das Gradle-Plug-in App Distribution als Abhängigkeit hinzu:Kotlin
plugins { // ... id("com.android.application") version "7.3.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.4.3" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.1.1" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.3.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.4.3' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.1.1' apply false }
Fügen Sie in der Gradle-Datei des Moduls (auf App-Ebene) (in der Regel
<project>/<app-module>/build.gradle.kts
oder<project>/<app-module>/build.gradle
) das Gradle-Plug-in App Distribution hinzu:Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
Wenn Sie sich hinter einem Unternehmensproxy oder einer Firewall befinden, fügen Sie die folgende Java-Systemeigenschaft hinzu, damit App Distribution Ihre Distributionen in Firebase hochladen kann:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Schritt 2: Mit Firebase authentifizieren
Bevor Sie das Gradle-Plug-in verwenden können, müssen Sie sich zuerst auf eine der folgenden Arten bei Ihrem Firebase-Projekt authentifizieren. Standardmäßig sucht das Gradle-Plug-in nach Anmeldedaten in der Firebase CLI, wenn keine andere Authentifizierungsmethode verwendet wird.
Schritt 3: Vertriebsattribute konfigurieren
Konfigurieren Sie App Distribution in der Gradle-Datei Ihres Moduls (auf App-Ebene) (in der Regel <project>/<app-module>/build.gradle.kts
oder <project>/<app-module>/build.gradle
), indem Sie mindestens einen firebaseAppDistribution
-Abschnitt hinzufügen.
Wenn Sie beispielsweise den Build release
an Tester verteilen möchten, folgen Sie dieser Anleitung::
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Sie können App Distribution für Build-Typen und Produktvarianten konfigurieren.
Wenn Sie beispielsweise die Builds debug
und release
in den Produktvarianten „demo“ und „full“ verteilen möchten, folgen Sie dieser Anleitung:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
Verwenden Sie die folgenden Parameter, um die Verteilung zu konfigurieren:
App Distribution Build-Parameter | |
---|---|
appId
|
Die Firebase-App-ID Ihrer App. Nur erforderlich, wenn das Gradle-Plug-in für Google-Dienste nicht installiert ist. Sie finden die App-ID in der Datei appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
Der Pfad zur JSON-Datei mit dem privaten Schlüssel Ihres Dienstkontos. Nur erforderlich, wenn Sie die Dienstkonto-Authentifizierung verwenden. |
artifactType
|
Gibt den Dateityp Ihrer App an. Kann auf |
artifactPath
|
Absoluter Pfad zur APK- oder AAB-Datei, die Sie hochladen möchten. |
releaseNotes oder releaseNotesFile |
Versionshinweise für diesen Build. Sie können die Versionshinweise entweder direkt angeben oder den Pfad zu einer Nur-Text-Datei. |
testers oder testersFile |
Die E‑Mail-Adressen der Tester, an die Sie Builds verteilen möchten. Sie können die Tester als durch Kommas getrennte Liste von E‑Mail-Adressen angeben: testers="ali@example.com, bri@example.com, cal@example.com" Alternativ können Sie den Pfad zu einer Datei angeben, die eine durch Kommas getrennte Liste von E-Mail-Adressen enthält: testersFile="/path/to/testers.txt" |
groups oder groupsFile |
Die Testgruppen, an die Sie Builds verteilen möchten (siehe Tester verwalten).
Gruppen werden mit Sie können die Gruppen als durch Kommas getrennte Liste von Gruppenaliasen angeben: groups="qa-team, android-testers" Alternativ können Sie den Pfad zu einer Datei angeben, die eine durch Kommas getrennte Liste von Gruppenalias enthält: groupsFile="/path/to/tester-groups.txt" |
testDevices oder testDevicesFile |
Die folgenden Verteilungstypen sind Teil der Betafunktion für automatische Tests. Die Testgeräte, auf denen Sie Builds bereitstellen möchten (siehe Automatisierte Tests). Sie können die Testgeräte als durch Semikolons getrennte Liste von Gerätespezifikationen angeben: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" Alternativ können Sie den Pfad zu einer Datei angeben, die eine durch Semikolons getrennte Liste von Gerätespezifikationen enthält: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Der Nutzername für die automatische Anmeldung, der bei automatisierten Tests verwendet werden soll. |
testPassword oder testPasswordFile |
Das Passwort für die automatische Anmeldung, das bei automatisierten Tests verwendet werden soll. Alternativ können Sie den Pfad zu einer Nur-Text-Datei mit einem Passwort angeben: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Ressourcenname für das Feld „Nutzername“ für die automatische Anmeldung, die bei automatisierten Tests verwendet werden soll. |
testPasswordResource |
Ressourcenname für das Passwortfeld für die automatische Anmeldung, das bei automatisierten Tests verwendet werden soll. |
testNonBlocking |
Automatisierte Tests asynchron ausführen Die Ergebnisse der automatischen Tests finden Sie in der Firebase Console. |
stacktrace
|
Gibt den Stacktrace für Nutzerausnahmen aus. Das ist hilfreich bei der Fehlerbehebung. |
Schritt 4: App für Tester bereitstellen
Um Ihre Test-App zu verpacken und Tester einzuladen, erstellen Sie die Ziele
BUILD-VARIANT
undappDistributionUploadBUILD-VARIANT
mit dem Gradle-Wrapper Ihres Projekts. Dabei ist BUILD-VARIANT die optionale Produktvariante und der Build-Typ, die Sie im vorherigen Schritt konfiguriert haben. Weitere Informationen zu Produktvarianten finden Sie unter Build-Varianten konfigurieren.Wenn Sie Ihre App beispielsweise mit der Build-Variante
release
verteilen möchten, führen Sie den folgenden Befehl aus:./gradlew bundleRelease appDistributionUploadRelease
Wenn Sie sich mit Ihrem Google-Konto authentifiziert und in Ihrer Gradle-Build-Datei keine Anmeldedaten angegeben haben, fügen Sie die Variable
FIREBASE_TOKEN
ein:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Sie können die in der Datei
build.gradle
festgelegten Werte auch überschreiben, indem Sie Befehlszeilenargumente in der Form--<property-name>=<property-value>
übergeben. Beispiel:So laden Sie einen Debug-Build in App Distribution hoch:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
So laden Sie weitere Tester ein oder entfernen vorhandene Tester aus Ihrem Firebase-Projekt:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
Nachdem ein Tester Ihrem Firebase-Projekt hinzugefügt wurde, können Sie ihn einzelnen Releases hinzufügen. Entfernte Tester haben keinen Zugriff mehr auf Releases in Ihrem Projekt, können aber möglicherweise noch eine gewisse Zeit lang auf Ihre Releases zugreifen.
Sie können Tester auch mit
--file="/path/to/testers.txt"
anstelle von--emails
angeben.Die Aufgaben
appDistributionAddTesters
undappDistributionRemoveTesters
akzeptieren auch die folgenden Argumente:projectNumber
: Ihre Firebase-Projektnummer.serviceCredentialsFile
: Der Pfad zu Ihrer Datei mit Google-Dienstanmeldedaten. Dies ist dasselbe Argument, das von der Upload-Aktion verwendet wird.
Das Gradle-Plug-in gibt nach dem Upload des Releases die folgenden Links aus. Über diese Links können Sie Binärdateien verwalten und dafür sorgen, dass Tester und andere Entwickler die richtige Version erhalten:
firebase_console_uri
: Ein Link zur Firebase-Konsole, in der eine einzelne Version angezeigt wird. Sie können diesen Link mit anderen Entwicklern in Ihrer Organisation teilen.testing_uri
: Ein Link zum Release in der Testerumgebung (native Android-App), über den Tester Versionshinweise aufrufen und die App auf ihrem Gerät installieren können. Der Tester benötigt Zugriff auf die Version, um den Link verwenden zu können.binary_download_uri
: Ein signierter Link, über den das App-Binärprogramm (APK- oder AAB-Datei) direkt heruntergeladen und installiert wird. Der Link läuft nach einer Stunde ab.
Sobald Sie Ihren Build verteilen, ist er 150 Tage (fünf Monate) lang im App Distribution-Dashboard der Firebase-Konsole verfügbar. 30 Tage vor Ablauf des Builds wird sowohl in der Console als auch in der Liste der Builds auf dem Testgerät des Testers eine Ablaufbenachrichtigung angezeigt.
Tester, die nicht zum Testen der App eingeladen wurden, erhalten E‑Mail-Einladungen, um loszulegen. Bestehende Tester erhalten E‑Mail-Benachrichtigungen, dass ein neuer Build zum Testen bereit ist. Eine Anleitung zum Installieren der Test-App finden Sie im Leitfaden zur Einrichtung für Tester. In der Firebase-Konsole können Sie den Status der einzelnen Tester im Blick behalten, z. B. ob sie die Einladung angenommen und die App heruntergeladen haben.
Tester haben 30 Tage Zeit, eine Einladung zum Testen der App anzunehmen. Danach läuft die Einladung ab. Fünf Tage vor Ablauf einer Einladung wird in der Firebase Console neben dem Tester einer Version eine Ablaufbenachrichtigung angezeigt. Eine Einladung kann erneuert werden, indem Sie sie über das Drop-down-Menü in der Testerzeile noch einmal senden.
Nächste Schritte
Implementieren Sie In-App-Feedback, damit Tester ganz einfach Feedback zu Ihrer App (einschließlich Screenshots) senden können.
Hier erfahren Sie, wie Sie Ihren Testern In-App-Benachrichtigungen anzeigen lassen, wenn neue Builds Ihrer App zur Installation verfügbar sind.
Im Codelab zu Android App Bundles erfahren Sie Schritt für Schritt, wie Sie App-Bundle-Releases verteilen.
Best Practices für die Verteilung von Android-Apps an QA-Tester mit CI/CD