Catch up on highlights from Firebase at Google I/O 2023. Learn more

Verteilen Sie Android-Apps mit Gradle an Tester

Sie können App Distribution mit dem App Distribution Gradle-Plug-in in Ihren Android-Build-Prozess integrieren. Mit dem Plug-in können Sie Ihre Tester und Versionshinweise in build.gradle Datei Ihrer App angeben, sodass Sie Distributionen für verschiedene Build-Typen und Varianten Ihrer App konfigurieren können.

Diese Anleitung beschreibt, wie Android App Bundles (AABs) mithilfe des App Distribution Gradle-Plugins an Tester verteilt werden.

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. Durch das Verteilen von AABs können Sie Folgendes tun:

  • 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.

Erforderliche Berechtigungen

Um AABs in App Distribution hochzuladen, müssen Sie Ihre Firebase-App mit einer App in Google Play verknüpfen . Sie müssen über die erforderliche Zugriffsebene verfügen, um diese Aktionen auszuführen.

Wenn Sie nicht über den erforderlichen Firebase-Zugriff verfügen, können Sie einen Firebase-Projektinhaber bitten, Ihnen die entsprechende Rolle über die IAM-Einstellungen der Firebase-Konsole zuzuweisen. Wenn Sie Fragen zum Zugriff auf Ihr Firebase-Projekt haben, einschließlich zum Suchen oder Zuweisen eines Eigentümers, lesen Sie die häufig gestellten Fragen 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-Konsole Erforderliche IAM-Berechtigung IAM-Rolle(n), die standardmäßig erforderliche Berechtigungen enthalten Zusätzliche erforderliche Rolle(n)
Verknüpfen Sie eine Firebase-App mit einer App in Google Play firebase.playLinks.update Eine der folgenden Rollen: Zugriff auf ein Google Play-Entwicklerkonto als Administrator
Laden Sie AABs in die App-Verteilung hoch firebaseappdistro.releases.update Eine der folgenden Rollen: ––

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. Richten Sie Ihr Android-Projekt ein

  1. Fügen Sie in Ihrer Gradle-Datei auf Stammebene (Projektebene) ( <project>/build.gradle oder <project>/build.gradle.kts ) das App Distribution Gradle-Plugin als Buildscript-Abhängigkeit hinzu:

    Groovig

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath 'com.android.tools.build:gradle:7.2.0'
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath 'com.google.gms:google-services:4.3.15'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0'
      }
    }
    

    Kotlin

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath("com.android.tools.build:gradle:7.2.0")
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath("com.google.gms:google-services:4.3.15")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:4.0.0")
      }
    }
    
  2. Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle oder <project>/<app-module>/build.gradle.kts ) das App Distribution Gradle-Plugin hinzu:

    Groovig

    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'
    }
    

    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")
    }
    
  3. Wenn Sie sich hinter einem Unternehmensproxy oder einer Firewall befinden, fügen Sie die folgende Java-Systemeigenschaft hinzu, die es App Distribution ermöglicht, Ihre Verteilungen auf Firebase hochzuladen:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

Schritt 2. Authentifizieren Sie sich bei Firebase

Bevor Sie das Gradle-Plug-in verwenden können, müssen Sie sich zunächst auf eine der folgenden Arten bei Ihrem Firebase-Projekt authentifizieren. Standardmäßig sucht das Gradle-Plugin nach Anmeldeinformationen von der Firebase-CLI, wenn keine andere Authentifizierungsmethode verwendet wird.

Schritt 3. Konfigurieren Sie Ihre Verteilungseigenschaften

Konfigurieren Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle oder <project>/<app-module>/build.gradle.kts ) App Distribution, indem Sie mindestens hinzufügen ein firebaseAppDistribution Abschnitt.

Um beispielsweise den release Build an Tester zu verteilen, befolgen Sie diese Anweisungen:

Groovig

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Sie können die App-Verteilung für Build-Typen und Produktvarianten konfigurieren.

Um beispielsweise debug und release -Builds in den Produktvarianten „Demo“ und „Vollversion“ zu verteilen, befolgen Sie diese Anweisungen:

Groovig

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"
          }
      }
  }

  // ...
}

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"
          }
      }
  }

  // ...
}

Verwenden Sie die folgenden Parameter, um die Verteilung zu konfigurieren:

App-Verteilungs-Build-Parameter
appId

Die Firebase-App-ID Ihrer App. Nur erforderlich, wenn Sie das Google Services Gradle-Plug-in nicht installiert haben. Sie finden die App-ID in der Datei google-services.json oder in der Firebase-Konsole auf der Seite Allgemeine Einstellungen . Der Wert in Ihrer build.gradle Datei überschreibt die Wertausgabe des google-services -Plugins.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

Der Pfad zur JSON-Datei mit dem privaten Schlüssel Ihres Dienstkontos. Nur erforderlich, wenn Sie die Dienstkontoauthentifizierung verwenden.

artifactType

Gibt den Dateityp Ihrer App an. Kann auf "AAB" oder "APK" eingestellt werden.

artifactPath

Absoluter Pfad zur APK- oder AAB-Datei, die Sie hochladen möchten.

releaseNotes oder releaseNotesFile

Versionshinweise für diesen Build.

Sie können entweder die Versionshinweise 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 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 Datei angeben, die eine durch Kommas getrennte Liste von E-Mail-Adressen enthält:

testersFile="/path/to/testers.txt"
groups oder groupsFile

Die Testergruppen, an die Sie Builds verteilen möchten (siehe Tester verwalten ). Gruppen werden mit angegeben Gruppenaliase , die Sie auf der Registerkarte Tester in der Firebase App Distribution-Konsole finden.

Sie können die Gruppen als kommagetrennte Liste von Gruppenaliasen angeben:

groups="qa-team, android-testers"

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

groupsFile="/path/to/tester-groups.txt"
stacktrace

Druckt den Stacktrace für Benutzerausnahmen aus. Dies ist beim Debuggen von Problemen hilfreich.

Schritt 4. Verteilen Sie Ihre App an Tester

  1. Um schließlich Ihre Test-App zu verpacken und Tester einzuladen, erstellen Sie die Ziele BUILD-VARIANT und appDistributionUpload BUILD-VARIANT mit dem Gradle-Wrapper Ihres Projekts, wobei BUILD-VARIANT die optionale Produktvariante und der Buildtyp ist, den Sie im vorherigen Schritt konfiguriert haben. Weitere Informationen zu Produktvarianten finden Sie unter Build-Varianten konfigurieren .

    Um Ihre App beispielsweise mit der release Build-Variante zu verteilen, führen Sie den folgenden Befehl aus:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    Wenn Sie sich mit Ihrem Google-Konto authentifiziert und keine Anmeldeinformationen in Ihrer Gradle-Build-Datei 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
    
  2. Sie können die in Ihrer build.gradle Datei festgelegten Werte auch überschreiben, indem Sie Befehlszeilenargumente in Form von --<property-name>=<property-value> übergeben. Zum 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"
      

      Sobald ein Tester zu Ihrem Firebase-Projekt hinzugefügt wurde, können Sie ihn einzelnen Releases hinzufügen. Tester, die entfernt werden, haben keinen Zugriff mehr auf Releases in Ihrem Projekt, behalten aber möglicherweise noch für ein gewisses Zeitfenster Zugriff auf Ihre Releases.

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

    Die Tasks appDistributionAddTesters und appDistributionRemoveTesters akzeptieren auch die folgenden Argumente:

    • projectNumber : Ihre Firebase-Projektnummer.

    • serviceCredentialsFile : Der Pfad zu Ihrer Datei mit den Anmeldeinformationen für den Google-Dienst. Dies ist dasselbe Argument, das von der Upload-Aktion verwendet wird.

Das Gradle-Plugin gibt nach dem Release-Upload folgende Links aus. Diese Links helfen Ihnen bei der Verwaltung von Binärdateien und stellen sicher, dass Tester und andere Entwickler die richtige Version haben:

  • firebase_console_uri – Ein Link zur Firebase-Konsole, der eine einzelne Version anzeigt. Sie können diesen Link mit anderen Entwicklern in Ihrer Organisation teilen.
  • testing_uri – Ein Link zur Version im Tester-Erlebnis (native Android-App), mit dem Tester Versionshinweise anzeigen und die App auf ihrem Gerät installieren können. Der Tester benötigt Zugriff auf die Freigabe, um den Link verwenden zu können.
  • binary_download_uri – 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 (fünf Monate) lang im App-Verteilungs-Dashboard der Firebase-Konsole verfügbar. Wenn der Build in 30 Tagen abläuft, wird sowohl in der Konsole als auch in der Liste der Builds Ihres Testers auf seinem Testgerät ein Ablaufhinweis angezeigt.

Tester, die nicht zum Testen der App eingeladen wurden, erhalten E-Mail-Einladungen, um loszulegen, und bestehende Tester erhalten E-Mail-Benachrichtigungen, dass ein neuer Build zum Testen bereit ist (Lesen Sie die Einrichtungsanleitung für Tester , um Anweisungen zum Installieren der Test-App zu erhalten). Sie können den Status jedes Testers – ob er die Einladung angenommen und die App heruntergeladen hat – in der Firebase-Konsole überwachen.

Tester haben 30 Tage Zeit, um eine Einladung zum Testen der App anzunehmen, bevor sie abläuft. Wenn eine Einladung in 5 Tagen abläuft, wird in der Firebase-Konsole neben dem Tester für eine Version ein Ablaufhinweis angezeigt. Eine Einladung kann erneuert werden, indem Sie sie über das Dropdown-Menü in der Tester-Zeile erneut senden.

Nächste Schritte