In dieser Anleitung wird beschrieben, wie Sie AAB-Builds mit fastlane an Tester verteilen. Fastlane ist eine Open-Source-Plattform, mit der das Erstellen und Veröffentlichen von iOS- und Android-Apps automatisiert wird. Es folgt einfachen Anweisungen, die in einer Fastfile
definiert sind. Nachdem Sie fastlane und Ihre Fastfile
eingerichtet haben, können Sie App Distribution in Ihre fastlane-Konfiguration einbinden.
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: fastlane einrichten
Wenn Sie App Distribution zu Ihrer fastlane-Konfiguration hinzufügen möchten, führen Sie den folgenden Befehl im Stammverzeichnis Ihres Android-Projekts aus:
fastlane add_plugin firebase_app_distribution
Wenn Sie vom Befehl aufgefordert werden, eine Option auszuwählen, wählen Sie
Option 3: RubyGems.org
aus.
Schritt 2: Mit Firebase authentifizieren
Bevor Sie das fastlane-Plug-in verwenden können, müssen Sie sich zuerst auf eine der folgenden Arten bei Ihrem Firebase-Projekt authentifizieren. Standardmäßig sucht das Fastlane-Plug-in nach Anmeldedaten aus der Firebase CLI, wenn keine andere Authentifizierungsmethode verwendet wird.
Schritt 3: Fastfile einrichten und App verteilen
- Fügen Sie in einer
./fastlane/Fastfile
-Spalte einenfirebase_app_distribution
-Block hinzu. Verwenden Sie die folgenden Parameter, um die Verteilung zu konfigurieren:firebase_app_distribution-Parameter app
Erforderlich: Die Firebase-App-ID Ihrer App. Sie finden die App-ID in der Firebase Console auf der Seite Allgemeine Einstellungen.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Ein Aktualisierungstoken, das ausgegeben wird, wenn Sie Ihre CI-Umgebung mit der Firebase CLI authentifizieren. Weitere Informationen finden Sie unter CLI mit CI-Systemen verwenden.
service_credentials_file
Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Authentifizierung mit Anmeldedaten des Dienstkontos
android_artifact_type
Gibt den Android-Dateityp an (APK oder AAB).
android_artifact_path
Ersetzt
apk_path
(eingestellt). Absoluter Pfad zur APK- oder AAB-Datei, die Sie hochladen möchten. Wenn nicht angegeben, bestimmt „fastlane“ den Speicherort der Datei anhand des Vorgangs, in dem die Datei generiert wurde.release_notes
release_notes_file
Versionshinweise für diesen Build.
Sie können die Versionshinweise direkt angeben:
release_notes: "Text of release notes"
Alternativ können Sie den Pfad zu einer Klartextdatei angeben:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Die E‑Mail-Adressen der Tester, die Sie einladen 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 Nur-Text-Datei angeben, die eine durch Kommas getrennte Liste von E-Mail-Adressen enthält:
testers_file: "/path/to/testers.txt"
groups
groups_file
Die Testergruppen, die Sie einladen möchten (siehe Tester verwalten). Gruppen werden mit
Gruppenaliasen angegeben, die Sie in der Firebase-Konsole nachschlagen können.Sie können die Gruppen als durch Kommas getrennte Liste angeben:
groups: "qa-team, trusted-testers"
Alternativ können Sie den Pfad zu einer Nur-Text-Datei angeben, die eine durch Kommas getrennte Liste von Gruppennamen enthält:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
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 angeben:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Alternativ können Sie den Pfad zu einer Nur-Text-Datei angeben, die eine durch Semikolons getrennte Liste von Testgeräten enthält:
test_devices_file: "/path/to/test-devices.txt"
test_username
Der Nutzername für die automatische Anmeldung, der bei automatisierten Tests verwendet werden soll.
test_password
test_password_file
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:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Ressourcenname für das Feld „Nutzername“ für die automatische Anmeldung, die bei automatisierten Tests verwendet werden soll.
test_password_resource
Ressourcenname für das Passwortfeld für die automatische Anmeldung, das bei automatisierten Tests verwendet werden soll.
test_non_blocking
Automatisierte Tests asynchron ausführen Die Ergebnisse der automatischen Tests finden Sie in der Firebase Console.
debug
Ein boolesches Flag. Sie können diesen Wert auf
true
setzen, um eine ausführliche Debugging-Ausgabe zu erhalten.
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!", android_artifact_type: "AAB" ) end end
Führen Sie Ihren Lane aus, um den Build für Tester verfügbar zu machen:
fastlane <lane>
Der Rückgabewert der Aktion ist ein Hash, der das hochgeladene Release darstellt.
Dieser Hash ist auch über lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
verfügbar.
Weitere Informationen zu den verfügbaren Feldern in diesem Hash finden Sie in der REST API-Dokumentation.
Das fastlane-Plugin 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:
- Ein Link zur Firebase-Konsole, in der eine einzelne Version angezeigt wird. Sie können diesen Link mit anderen Entwicklern in Ihrer Organisation teilen.
- Ein Link zum Release in der Testerumgebung (native Android-App), über den Tester Release-Hinweise 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.
- 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.
Nachdem Sie Ihren Build verteilt haben, ist er 150 Tage lang im App Distribution-Dashboard der Firebase-Konsole verfügbar. 30 Tage vor Ablauf des Builds wird in der Konsole und in der Liste der Builds auf dem Testgerät des Testers eine Ablaufbenachrichtigung angezeigt.
Tester, die zuvor nicht zum Testen der App eingeladen wurden, erhalten E‑Mail-Einladungen. Vorhandene Tester erhalten E‑Mail-Benachrichtigungen, dass ein neuer Build zum Testen bereit ist. Weitere Informationen zum Installieren der Test-App Sie können den Status der einzelnen Tester im Blick behalten, um festzustellen, ob sie die Einladung angenommen und die App in der Firebase-Konsole heruntergeladen haben.
Optional: Wenn Sie die Build-Nummer automatisch erhöhen möchten, wenn Sie in App Distribution ein neues Release erstellen, können Sie die firebase_app_distribution_get_latest_release
-Aktion und beispielsweise das increment_version_code
-Fastlane-Plug-in verwenden.
Der folgende Code enthält ein Beispiel dafür, wie Sie die Build-Nummer automatisch erhöhen können:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
Weitere Informationen zur Aktion firebase_app_distribution_get_latest_release
Schritt 4 (optional) Tester für die Verteilung verwalten
Sie können Tester über Ihre Fastfile
-Datei oder durch direktes Ausführen von Fastlane-Aktionen zu Ihrem Projekt oder Ihrer Gruppe hinzufügen oder daraus entfernen. Wenn Sie Aktionen direkt ausführen, werden die in Ihrer Fastfile
festgelegten Werte überschrieben.
Sobald ein Tester Ihrem Firebase-Projekt hinzugefügt wurde, können Sie ihn einzelnen Releases hinzufügen. Tester, die aus Ihrem Firebase-Projekt entfernt werden, haben keinen Zugriff mehr auf Releases in Ihrem Projekt. Sie behalten jedoch möglicherweise für einen bestimmten Zeitraum Zugriff auf Ihre Releases.
Wenn Sie eine große Anzahl von Testern haben, sollten Sie Gruppen verwenden.
Fastfile
verwenden
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers
fastlane-Aktionen ausführen
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
Sie können Tester auch mit --file="/path/to/testers.txt
anstelle von --emails
angeben.
Die Aufgaben firebase_app_distribution_add_testers
und firebase_app_distribution_remove_testers
akzeptieren auch die folgenden Argumente:
project_name
: Ihre Firebase-Projektnummer.group_alias
(optional): Wenn angegeben, werden die Tester der angegebenen Gruppe hinzugefügt oder daraus entfernt.service_credentials_file
: Der Pfad zu Ihrer Datei mit Google-Dienstanmeldedaten.firebase_cli_token
: Authentifizierungstoken für die Firebase-Befehlszeile.
service_credentials_file
und firebase_cli_token
sind dieselben Argumente, die von der Upload-Aktion verwendet werden.
Schritt 5 (optional). Informationen zum aktuellen Release Ihrer App abrufen
Mit der Aktion firebase_app_distribution_get_latest_release
können Sie Informationen zum neuesten Release Ihrer App in App Distribution abrufen, z. B. Informationen zur App-Version, Versionshinweise und die Erstellungszeit. Anwendungsfälle sind beispielsweise die automatische Erhöhung der Version und die Übernahme der Versionshinweise aus dem vorherigen Release.
Der Rückgabewert der Aktion ist ein Hash, der den neuesten Release darstellt.
Dieser Hash ist auch über lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
verfügbar.
Weitere Informationen zu den verfügbaren Feldern in diesem Hash finden Sie in der REST API-Dokumentation.
Parameter
Parameter für firebase_app_distribution_get_latest_release | |
---|---|
app
|
Erforderlich: Die Firebase-App-ID Ihrer App. Sie finden die App-ID in der Firebase Console auf der Seite Allgemeine Einstellungen. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
Ein Aktualisierungstoken, das ausgegeben wird, wenn Sie Ihre CI-Umgebung mit der Firebase CLI authentifizieren. Weitere Informationen finden Sie unter CLI mit CI-Systemen verwenden. |
service_credentials_file
|
Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Authentifizierung mit Anmeldedaten des Dienstkontos |
debug
|
Ein boolesches Flag. Sie können diesen Wert auf |
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.
Best Practices für die Verteilung von Android-Apps an QA-Tester mit CI/CD