Android-Apps per Schnellzugriff an Tester verteilen


In diesem Dokument wird beschrieben, wie Sie APK-Builds mit fastlane an Tester verteilen. fastlane ist eine Open-Source-Plattform, die das Erstellen und Veröffentlichen von iOS- und Android-Apps automatisiert. Dieses Dokument folgt den Anweisungen in einer Fastfile. Nachdem Sie fastlane und Ihre Fastfile eingerichtet haben, können Sie App Distribution in Ihre fastlane-Konfiguration einbinden.

Hinweis

  1. Falls noch nicht geschehen, fügen Sie Ihrem Android-Projekt Firebase hinzu.

    Wenn Sie keine anderen Firebase-Produkte verwenden, müssen Sie nur ein Projekt erstellen und Ihre App registrieren. Wenn Sie sich jedoch entscheiden, in Zukunft weitere Produkte zu verwenden, müssen Sie alle Schritte auf der oben verlinkten Seite ausführen.

  2. Öffnen Sie die Seite App Distribution der Firebase Console. Wählen Sie Ihr Firebase-Projekt aus, wenn Sie dazu aufgefordert werden, wählen Sie Ihre App über den App-Schnellzugriff aus und klicken Sie auf Jetzt starten.

Schritt 1: fastlane einrichten

  1. Installieren und richten Sie fastlane ein.

  2. Führen Sie den folgenden Befehl im Stammverzeichnis Ihres Android-Projekts aus, um App Distribution zu Ihrer fastlane-Konfiguration hinzuzufügen:

    fastlane add_plugin firebase_app_distribution

    Wenn Sie im Befehl eine Option auswählen können, 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 auf eine der folgenden Arten bei Ihrem Firebase-Projekt authentifizieren. Standardmäßig sucht das fastlane-Plug-in nach Anmeldedaten aus der Firebase-Befehlszeile, wenn keine andere Authentifizierungsmethode verwendet wird.

Schritt 3: Fastfile einrichten und App bereitstellen

  1. Fügen Sie in einer ./fastlane/Fastfile-Lane 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 ausgegeben wird, wenn Sie Ihre CI-Umgebung mit der Firebase-Befehlszeile authentifizieren. Weitere Informationen finden Sie unter Befehlszeile mit CI-Systemen verwenden.

    service_credentials_file

    Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Informationen zur Authentifizierung mit Dienstkonto-Anmeldedaten finden Sie oben.

    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 keine Angabe gemacht wird, 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"

    Alternativ können Sie den Pfad zu einer Nur-Text-Datei 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 Gruppen-Aliassen angegeben, die Sie in der Firebase Console nachschlagen können.

    Sie können die Gruppen als durch Kommas getrennte Liste angeben:

    groups: "qa-team, trusted-testers"

    Sie können auch den Pfad zu einer Nur-Text-Datei mit einer durch Kommas getrennten Liste von Gruppennamen angeben:

    groups_file: "/path/to/groups.txt"
    test_devices
    test_devices_file

    Die Testgeräte, auf denen Sie Tests mit dem KI-Agent zum Testen von Anwendungen ausführen möchten.

    Sie können die Testgeräte als durch Semikolons getrennte Liste von Gerätespezifikationen angeben:

    test_devices: "model=shiba,version=34,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 Tests mit dem KI-Agenten zum Testen von Anwendungen verwendet werden soll.

    test_password
    test_password_file

    Das Passwort für die automatische Anmeldung, das bei Tests mit dem KI-Agenten zum Testen von Anwendungen 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 für den Nutzernamen für die automatische Anmeldung, das bei Tests mit dem KI-Agenten zum Testen von Anwendungen verwendet werden soll.

    test_password_resource

    Ressourcenname für das Passwortfeld für die automatische Anmeldung, das bei Tests mit dem KI-Agenten zum Testen von Anwendungen verwendet werden soll.

    test_non_blocking

    Wenn diese Option beim Ausführen von KI-Agent zum Testen von Anwendungen-Tests festgelegt ist, werden die Tests mit dem Befehl gestartet und dann sofort zurückgegeben, anstatt auf den Abschluss zu warten. Die Testergebnisse finden Sie in der Firebase Console. Wenn dieses Flag nicht festgelegt ist, wird der Befehl blockiert, bis die Tests abgeschlossen sind. Wenn einer der Tests fehlschlägt, wird der Befehl mit einem Fehlercode beendet.

    debug

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

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

Führen Sie Ihre Lane aus, um den Build für Tester verfügbar zu machen:

fastlane <lane>

Der Rückgabewert der Aktion ist ein Hash, der den hochgeladenen 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-Plug-in gibt nach dem Upload des Release die folgenden Links aus. Mit diesen Links können Sie Binärdateien verwalten und dafür sorgen, dass Tester und andere Entwickler die richtige Version haben:

  • Ein Link zur Firebase-Konsole, in der ein einzelner Release angezeigt wird. Sie können diesen Link mit anderen Entwicklern in Ihrer Organisation teilen.
  • Ein Link zum Release in der Tester-Umgebung (integrierte Android-App), über den Tester die Versionshinweise aufrufen und die App auf ihrem Gerät installieren können. Der Tester benötigt Zugriff auf den Release, um den Link verwenden zu können.
  • Ein signierter Link, über den die Binärdatei der App (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 Console und in der Liste der Builds auf dem Testgerät des Testers ein Ablaufhinweis angezeigt.

Tester, die zuvor nicht zum Testen der App eingeladen wurden, erhalten eine Einladung per E‑Mail, um loszulegen. Bestehende Tester erhalten E‑Mail-Benachrichtigungen, dass ein neuer Build zum Testen bereit ist. Informationen zum Installieren der Test-App finden Sie im Leitfaden für Tester. In der Firebase Console kannst du den Status der einzelnen Tester im Blick behalten, um zu sehen, ob sie die Einladung angenommen und die App heruntergeladen haben.

(Optional) Wenn Sie die Build-Nummer jedes Mal automatisch erhöhen möchten, wenn Sie ein neues Release in App-Bereitstellung erstellen, können Sie die Aktion firebase_app_distribution_get_latest_release und beispielsweise das fastlane-Plug-in increment_version_code 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 finden Sie unter Informationen zum neuesten Release Ihrer App abrufen.

Schritt 4 (optional): Tester für die Bereitstellung verwalten

Sie können Tester über die Datei Fastfile 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 der 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 können jedoch für einen bestimmten Zeitraum weiterhin auf Ihre Releases zugreifen.

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_number: Ihre Firebase-Projektnummer.
  • group_alias (optional): Wenn angegeben, werden die Tester der angegebenen Gruppe hinzugefügt (oder daraus entfernt).
  • service_credentials_file: Der Pfad zur Datei mit den 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 neuesten Release Ihrer App abrufen

Mit der Aktion firebase_app_distribution_get_latest_release können Sie Informationen zum neuesten Release Ihrer App in App-Bereitstellung abrufen, einschließlich Informationen zur App-Version, Versionshinweisen und Erstellungszeit. Zu den Anwendungsfällen gehören das automatische Erhöhen der Version und das Übertragen 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-Konsole 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-Befehlszeile authentifizieren. Weitere Informationen finden Sie unter Befehlszeile mit CI-Systemen verwenden.

service_credentials_file

Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Informationen zur Authentifizierung mit Dienstkonto-Anmeldedaten finden Sie im vorherigen Parameter.

debug

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

Nächste Schritte