了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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.

In dieser Anleitung wird beschrieben, wie Sie APKs mithilfe des App Distribution Gradle-Plug-ins an Tester verteilen.

Bevor Sie beginnen

Fügen Sie Ihrem Android-Projekt Firebase hinzu , falls Sie dies noch nicht getan haben .

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, führen Sie unbedingt alle Schritte auf der oben verlinkten Seite durch.

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="APK"
              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 = "APK"
              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 assembleRelease 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 assembleRelease 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="APK"
      
    • 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