Verteilen Sie Android-Apps mit Fastlane an Tester

Dieser Leitfaden beschreibt, wie AAB-Builds mithilfe von fastlane , einer Open-Source-Plattform, die das Erstellen und Freigeben von iOS- und Android-Apps automatisiert, an Tester verteilt werden. Es folgt einfachen 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.

Um dieser Anleitung zu folgen, benötigen Sie die folgenden Voraussetzungen: Zugriff auf ein Firebase-Projekt ( Inhaber oder Firebase -Administrator ), Zugriff auf ein Google Play-Entwicklerkonto ( Inhaber oder Administrator ) und eine App, die sich in einem veröffentlichten Zustand bei Google Play befindet.

Informationen zum Verteilen von Android App Bundles

App Distribution lässt sich in den internen App-Sharing-Dienst von Google Play integrieren, 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, können Sie:

  • Führen Sie optimierte APKs (bereitgestellt von Google Play) aus, die für die Geräte Ihrer Tester optimiert sind.
  • Entdecken und debuggen Sie gerätespezifische Probleme.
  • Testen Sie App Bundle-Funktionen wie Play Feature Delivery und Play Asset Delivery
  • Reduzieren Sie die Größe der Downloads für Ihre Tester.

Bevor Sie beginnen

  1. Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls Sie dies noch nicht getan haben . Am Ende dieses Workflows 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 entscheiden, zusätzliche Produkte zu verwenden, stellen Sie sicher, dass Sie alle Schritte unter Hinzufügen von Firebase zu Ihrem Android-Projekt ausführen .

  2. Stellen Sie sicher, dass Ihre App die folgenden Anforderungen erfüllt, um einen Firebase-Link zu Google Play zu erstellen und AABs hochzuladen:

    • Die App in Google Play und die Firebase-Android-App sind beide mit demselben Paketnamen registriert.

    • Die App in Google Play wird auf dem App-Dashboard eingerichtet und auf einen der Google Play-Tracks verteilt (Internes Testen, Geschlossenes Testen, Offenes Testen oder 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“ (kein interner Entwurfstest), „Geschlossener Test“, „Offener Test“ oder „Produktion“.

  3. Verknüpfen Sie Ihre Firebase Android App mit Ihrem Google Play-Entwicklerkonto:

    1. Gehen Sie in der Firebase-Konsole zu Ihren Projekteinstellungen und wählen Sie dann die Registerkarte Integrationen aus.

    2. Klicken Sie auf der Google Play -Karte auf Link .
      Wenn Sie bereits Links zu Google Play haben, klicken Sie stattdessen auf Verwalten .

    3. Befolgen Sie die Anweisungen auf dem Bildschirm, um die App Distribution-Integration zu aktivieren und auszuwählen, welche Firebase-Android-Apps mit Google Play verknüpft werden sollen.

    Erfahren Sie mehr über das Verknüpfen mit Google Play .

Schritt 1. Fastlane einrichten

  1. Fastlane installieren und einrichten .

  2. 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 mit einer Option auffordert, wählen Sie Option 3: RubyGems.org .

Schritt 2. Authentifizieren Sie sich bei Firebase

Bevor Sie das Fastlane-Plug-in verwenden können, müssen Sie sich zunächst bei Ihrem Firebase-Projekt authentifizieren. Es gibt drei Möglichkeiten, dies zu erreichen:

Schritt 3. Richten Sie Ihr Fastfile ein und verteilen Sie Ihre App

  1. Fügen Sie in einer ./fastlane/Fastfile einen firebase_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 die Anmeldeaktion des Plug-ins ausführen (siehe Authentifizierung mit einem Google-Konto oben) oder 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. Siehe oben, um zu erfahren, wie Sie sich mit Dienstkonto-Anmeldeinformationen authentifizieren .

    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 nicht angegeben, ermittelt fastlane den Speicherort der Datei anhand der Lane, 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 kommagetrennte Liste von E-Mail-Adressen angeben:

    testers: "ali@example.com, bri@example.com, cal@example.com"

    Oder Sie können den Pfad zu einer einfachen Textdatei 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 kommagetrennte Liste angeben:

    groups: "qa-team, trusted-testers"

    Oder Sie können den Pfad zu einer einfachen Textdatei angeben, die eine durch Kommas getrennte Liste von Gruppennamen enthält:

    groups_file: "/path/to/groups.txt"
    debug

    Ein boolesches Flag. 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(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        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

Um den Build Testern zur Verfügung zu stellen, führen Sie Ihre Lane aus:

fastlane <lane>

Nachdem Sie Ihren Build verteilt haben, ist er 150 Tage lang im App-Verteilungs-Dashboard der Firebase-Konsole verfügbar. Wenn der Build in 30 Tagen abläuft, wird ein Ablaufhinweis in der Konsole und in der Liste der Builds des Testers auf seinem Testgerät angezeigt.

Tester, die zuvor 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. Informationen zur Installation der Test-App finden Sie im Tester-Setup-Leitfaden . 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 firebase_app_distribution_get_latest_release firebase_app_distribution_get_latest_release und beispielsweise das Fastlane-Plug-in 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 Abrufen von Informationen zur neuesten Version Ihrer App .

Schritt 4 (Optional). Verwalten von Testern für die Verteilung

Sie können Tester zu Ihrer App-Version 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 einzelnen Releases hinzufügen. Tester, die aus Ihrem Firebase-Projekt entfernt wurden, haben keinen Zugriff mehr auf Releases in Ihrem Projekt, behalten aber möglicherweise noch für einen bestimmten Zeitraum Zugriff auf Ihre Releases.

Verwenden Sie Fastfile

# Use lanes to add or remove testers from an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
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_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

Sie können Tester auch mit --file="/path/to/testers.txt anstelle von --emails .

Die Aufgaben firebase_app_distribution_add_testers und firebase_app_distribution_remove_testers akzeptieren auch die folgenden Argumente:

  • project_name : Ihre Firebase-Projektnummer.
  • service_credentials_file : Der Pfad zu Ihrer Datei mit den Anmeldeinformationen für den Google-Dienst.
  • firebase_cli_token : Auth-Token für die 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 unter Verwendung von lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] . 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 die Anmeldeaktion des Plug-ins ausführen (siehe Authentifizierung mit einem Google-Konto oben) oder 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. Siehe oben, um zu erfahren, wie Sie sich mit Dienstkonto-Anmeldeinformationen authentifizieren .

debug

Ein boolesches Flag. Sie können dies auf true setzen, um eine ausführliche Debug-Ausgabe zu drucken.