In diesem Dokument wird beschrieben, wie Sie APK-Builds mithilfe von Fastlane an Tester verteilen, einer Open-Source-Plattform, die die Erstellung und Veröffentlichung von iOS- und Android-Apps automatisiert. Dieses Dokument folgt Anweisungen, die in einem Fastfile
definiert sind. Nachdem Sie Fastlane und Ihr Fastfile
eingerichtet haben, können Sie App Distribution in Ihre Fastlane-Konfiguration integrieren.
Bevor Sie beginnen
Falls noch nicht geschehen, fügen Sie Firebase zu Ihrem Android-Projekt hinzu .
Wenn Sie keine anderen Firebase-Produkte verwenden, müssen Sie nur ein Projekt erstellen und Ihre App registrieren. Wenn Sie sich jedoch dazu entschließen, in Zukunft weitere Produkte zu verwenden, stellen Sie sicher, dass Sie alle Schritte auf der oben verlinkten Seite ausführen.
Schritt 1. Fastlane einrichten
Um App Distribution zu Ihrer Fastlane-Konfiguration hinzuzufügen, führen Sie den folgenden Befehl im Stammverzeichnis Ihres Android-Projekts aus:
fastlane add_plugin firebase_app_distribution
Wenn der Befehl Sie zu einer Option auffordert, wählen Sie
Option 3: RubyGems.org
.
Schritt 2: Authentifizieren Sie sich bei Firebase
Bevor Sie das Fastlane-Plugin verwenden können, müssen Sie sich zunächst auf eine der folgenden Arten bei Ihrem Firebase-Projekt authentifizieren. Standardmäßig sucht das Fastlane-Plugin nach Anmeldeinformationen von der Firebase-CLI, wenn keine andere Authentifizierungsmethode verwendet wird.
Durch die Authentifizierung mit einem Dienstkonto können Sie das Plugin flexibel mit Ihrem Continuous Integration (CI)-System verwenden. Es gibt zwei Möglichkeiten, Anmeldeinformationen für ein Dienstkonto bereitzustellen:
- Übergeben Sie die Schlüsseldatei Ihres Dienstkontos an die Aktion
firebase_app_distribution
. Diese Methode ist möglicherweise praktisch, wenn Sie bereits über die Schlüsseldatei Ihres Dienstkontos in Ihrer Build-Umgebung verfügen. - Legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
so fest, dass sie auf die Schlüsseldatei Ihres Dienstkontos verweist. Möglicherweise bevorzugen Sie diese Methode, wenn Sie bereits Application Default Credentials (ADC) für einen anderen Google-Dienst (z. B. Google Cloud) konfiguriert haben.
- Wählen Sie in der Google Cloud Console Ihr Projekt aus und erstellen Sie ein neues Dienstkonto.
- Fügen Sie die Rolle „Firebase App Distribution Admin“ hinzu.
- Erstellen Sie einen privaten JSON-Schlüssel und verschieben Sie den Schlüssel an einen Ort, auf den Ihre Build-Umgebung zugreifen kann. Bewahren Sie diese Datei unbedingt an einem sicheren Ort auf , da sie Administratorzugriff auf die App-Verteilung in Ihrem Firebase-Projekt gewährt.
- Überspringen Sie diesen Schritt, wenn Sie Ihre App nach dem 20. September 2019 erstellt haben: Aktivieren Sie in der Google APIs-Konsole die Firebase App Distribution API. Wenn Sie dazu aufgefordert werden, wählen Sie das Projekt mit demselben Namen wie Ihr Firebase-Projekt aus.
Geben Sie Ihre Dienstkonto-Anmeldeinformationen ein oder suchen Sie sie:
- Um Ihren Dienstkontoschlüssel an die Aktion „
firebase_app_distribution
Ihrer Spur zu übergeben, legen Sie den Parameterservice_credentials_file
“ mit dem Pfad zu Ihrer JSON-Datei mit privatem Schlüssel fest Um Ihre Anmeldeinformationen mit ADC zu finden, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad für die JSON-Datei mit dem privaten Schlüssel fest. Beispiel:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Weitere Informationen zur Authentifizierung mit ADC finden Sie unter Bereitstellen von Anmeldeinformationen für Ihre Anwendung.
- Um Ihren Dienstkontoschlüssel an die Aktion „
Anweisungen zur Authentifizierung Ihres Projekts finden Sie unter Mit der Firebase-CLI anmelden .
Schritt 3. Richten Sie Ihr Fastfile ein und verteilen Sie Ihre App
- Fügen Sie in einer
./fastlane/Fastfile
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-Konsole auf der Seite „Allgemeine Einstellungen“ .
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Ein Aktualisierungstoken, das gedruckt wird, wenn Sie Ihre CI-Umgebung mit der Firebase-CLI authentifizieren (weitere Informationen finden Sie unter Verwenden der CLI mit CI-Systemen ).
service_credentials_file
Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Informationen zur Authentifizierung mithilfe der Anmeldeinformationen des Dienstkontos finden Sie oben.
android_artifact_type
Gibt den Android-Dateityp (APK oder AAB) an.
android_artifact_path
Ersetzt
apk_path
(veraltet). Absoluter Pfad zur APK- oder AAB-Datei, die Sie hochladen möchten. Wenn keine Angabe erfolgt, ermittelt Fastlane den Speicherort der Datei anhand der Spur, in der die Datei generiert wurde.release_notes
release_notes_file
Versionshinweise für diesen Build.
Sie können die Versionshinweise entweder direkt angeben:
release_notes: "Text of release notes"
Oder geben Sie den Pfad zu einer Nur-Text-Datei an:
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"
Oder Sie können 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 angegeben
Gruppenaliase , 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"
Oder Sie können 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 des automatisierten Testers .
Die Testgeräte, an die Sie Builds verteilen möchten (siehe Automatisierte Tests ).
Sie können die Testgeräte als durch Semikolons getrennte Liste von Testgeräten angeben:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Oder Sie können 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 Benutzername für die automatische Anmeldung, der bei automatisierten Tests verwendet wird.
test_password
test_password_file
Das Passwort für die automatische Anmeldung, das bei automatisierten Tests verwendet wird.
Oder Sie können den Pfad zu einer Nur-Text-Datei angeben, die ein Passwort enthält:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Ressourcenname für das Benutzernamenfeld für die automatische Anmeldung, das 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
Führen Sie automatisierte Tests asynchron aus. Besuchen Sie die Firebase-Konsole für die automatischen Testergebnisse.
debug
Eine boolesche Flagge. Sie können dies auf
true
setzen, um eine ausführliche Debug-Ausgabe zu drucken.
platform :android do desc "My awesome app" lane :distribute do build_android_app(...) # 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!" ) end end
Um den Build Testern zur Verfügung zu stellen, führen Sie Ihre Spur aus:
fastlane <lane>
Der Rückgabewert der Aktion ist ein Hash, der die hochgeladene Version darstellt. Dieser Hash ist auch mit 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 Release-Upload die folgenden Links aus. Diese Links helfen Ihnen bei der Verwaltung von Binärdateien und stellen sicher, dass Tester und andere Entwickler über die richtige Version verfügen:
- Ein Link zur Firebase-Konsole, der eine einzelne Version anzeigt. Sie können diesen Link mit anderen Entwicklern in Ihrer Organisation teilen.
- Ein Link zur Veröffentlichung im Tester-Erlebnis (native Android-App), über den Tester Versionshinweise anzeigen und die App auf ihrem Gerät installieren können. Um den Link nutzen zu können, benötigt der Tester Zugriff auf die Freigabe.
- Ein signierter Link, der die App-Binärdatei (APK- oder AAB-Datei) direkt herunterlädt und installiert. 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. Wenn der Build 30 Tage vor dem Ablauf steht, wird in der Konsole und in der Liste der Builds des Testers auf seinem Testgerät eine Ablaufbenachrichtigung angezeigt.
Tester, die zuvor nicht zum Testen der App eingeladen wurden, erhalten E-Mail-Einladungen, um mit dem Testen zu beginnen. Bestehende Tester erhalten E-Mail-Benachrichtigungen, dass ein neuer Build zum Testen bereit ist. Informationen zur Installation der Test-App finden Sie in der Tester-Einrichtungsanleitung . Sie können den Status jedes Testers überwachen, um festzustellen, ob er die Einladung angenommen und die App in der Firebase-Konsole heruntergeladen hat.
(Optional) Um Ihre Build-Nummer jedes Mal automatisch zu erhöhen, wenn Sie eine neue Version in App Distribution erstellen, können Sie die Aktion firebase_app_distribution_get_latest_release
“ und beispielsweise das Fastlane-Plugin „ increment_version_code
verwenden. Der folgende Code ist ein Beispiel dafür, wie Sie Ihre Build-Nummer automatisch erhöhen:
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
“ finden Sie unter Informationen zur neuesten Version Ihrer App abrufen .
Schritt 4 (optional). Verwalten von Testern für die Distribution
Sie können Tester zu Ihrem Projekt oder Ihrer Gruppe hinzufügen und daraus entfernen, indem Sie Ihre Fastfile
Datei verwenden oder Fastlane-Aktionen direkt ausführen. Das Ausführen von Aktionen überschreibt direkt die in Ihrem Fastfile
festgelegten Werte.
Sobald ein Tester zu Ihrem Firebase-Projekt hinzugefügt wurde, können Sie ihn zu einzelnen Releases hinzufügen. Tester, die aus Ihrem Firebase-Projekt entfernt werden, haben keinen Zugriff mehr auf Releases in Ihrem Projekt, behalten aber möglicherweise für einen bestimmten Zeitraum Zugriff auf Ihre Releases.
Wenn Sie eine große Anzahl von Testern haben, sollten Sie die Verwendung von Gruppen in Betracht ziehen.
Verwenden Sie Fastfile
# 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
Führen Sie Fastlane-Aktionen aus
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 zur angegebenen Gruppe hinzugefügt (oder daraus entfernt). -
service_credentials_file
: Der Pfad zu Ihrer Google-Dienstanmeldeinformationsdatei. -
firebase_cli_token
: Authentifizierungstoken für Firebase CLI.
Die service_credentials_file
und das firebase_cli_token
sind dieselben Argumente, die von der Upload-Aktion verwendet werden.
Schritt 5 (optional). Informieren Sie sich über die neueste Version Ihrer App
Sie können die Aktion firebase_app_distribution_get_latest_release
verwenden, um Informationen über die neueste Version Ihrer App in App Distribution abzurufen, einschließlich App-Versionsinformationen, Versionshinweise und Erstellungszeit. Zu den Anwendungsfällen gehören das automatische Erhöhen der Version und das Übernehmen der Versionshinweise aus der vorherigen Version.
Der Rückgabewert der Aktion ist ein Hash, der die neueste Version 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
firebase_app_distribution_get_latest_release-Parameter | |
---|---|
app | Erforderlich : Die Firebase-App-ID Ihrer App. Sie finden die App-ID in der Firebase-Konsole auf der Seite „Allgemeine Einstellungen“ . app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | Ein Aktualisierungstoken, das gedruckt wird, wenn Sie Ihre CI-Umgebung mit der Firebase-CLI authentifizieren (weitere Informationen finden Sie unter Verwenden der CLI mit CI-Systemen ). |
service_credentials_file | Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Informationen zur Authentifizierung mithilfe der Anmeldeinformationen des Dienstkontos finden Sie oben. |
debug | Eine boolesche Flagge. Sie können dies auf |
Nächste Schritte
Implementieren Sie In-App-Feedback , um es Testern zu erleichtern, Feedback zu Ihrer App zu senden (einschließlich Screenshots).
Erfahren Sie, wie Sie Ihren Testern In-App-Benachrichtigungen anzeigen, wenn neue Builds Ihrer App zur Installation verfügbar sind.
Lernen Sie Best Practices für die Verteilung von Android-Apps an QA-Tester mithilfe von CI/CD kennen.