Dystrybuuj aplikacje na Androida wśród testerów za pomocą Gradle

Możesz zintegrować dystrybucję aplikacji z procesem kompilacji systemu Android za pomocą wtyczki App Distribution Gradle. Wtyczka umożliwia określenie testerów i informacji o wersji w pliku Gradle aplikacji, co pozwala skonfigurować dystrybucje dla różnych typów kompilacji i wariantów aplikacji.

W tym przewodniku opisano, jak dystrybuować pliki APK wśród testerów za pomocą wtyczki App Distribution Gradle.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .

Jeśli nie korzystasz z innych produktów Firebase, wystarczy, że utworzysz projekt i zarejestrujesz swoją aplikację. Jeśli jednak w przyszłości zdecydujesz się skorzystać z dodatkowych produktów, pamiętaj o wykonaniu wszystkich kroków opisanych na stronie, do której link znajduje się powyżej.

Krok 1. Skonfiguruj swój projekt na Androida

  1. W pliku Gradle na poziomie głównym (na poziomie projektu) ( <project>/build.gradle.kts lub <project>/build.gradle ) dodaj wtyczkę App Distribution Gradle jako zależność:

    Kotlin

    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.1" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.2.0" apply false
    }
    

    Groovy

    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.1' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.2.0' apply false
    }
    
  2. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle ) dodaj wtyczkę App Distribution Gradle:

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

    Groovy

    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. Jeśli korzystasz z korporacyjnego serwera proxy lub zapory sieciowej, dodaj następującą właściwość systemu Java , która umożliwia App Distribution przesyłanie Twoich dystrybucji do Firebase:

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

Krok 2. Uwierzytelnij się w Firebase

Zanim będziesz mógł korzystać z wtyczki Gradle, musisz najpierw uwierzytelnić się w projekcie Firebase na jeden z poniższych sposobów. Domyślnie wtyczka Gradle szuka poświadczeń w interfejsie CLI Firebase, jeśli nie jest używana żadna inna metoda uwierzytelniania.

Krok 3. Skonfiguruj właściwości dystrybucji

W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle ) skonfiguruj dystrybucję aplikacji, dodając co najmniej jedna sekcja firebaseAppDistribution .

Na przykład, aby udostępnić release testerom, postępuj zgodnie z poniższymi instrukcjami:

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

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

  // ...
}

Możesz skonfigurować dystrybucję aplikacji pod kątem typów kompilacji i wersji produktów .

Na przykład, aby dystrybuować kompilacje debug i release w wersji „demo” i „pełnej”, postępuj zgodnie z poniższymi instrukcjami:

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

  // ...
}

Groovy

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

  // ...
}

Aby skonfigurować dystrybucję, użyj następujących parametrów:

Parametry kompilacji dystrybucji aplikacji
appId

Identyfikator aplikacji Firebase Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz zainstalowanej wtyczki Google Services Gradle. Identyfikator aplikacji znajdziesz w pliku google-services.json lub w konsoli Firebase na stronie Ustawienia ogólne . Wartość w pliku build.gradle zastępuje wartość wyjściową wtyczki google-services .

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

Ścieżka do pliku JSON klucza prywatnego konta usługi. Wymagane tylko w przypadku korzystania z uwierzytelniania konta usługi.

artifactType

Określa typ pliku aplikacji. Można ustawić na "AAB" lub "APK" .

artifactPath

Ścieżka bezwzględna do pliku APK lub AAB, który chcesz przesłać.

releaseNotes lub releaseNotesFile

Informacje o wersji dla tej kompilacji.

Możesz bezpośrednio określić informacje o wydaniu lub ścieżkę do zwykłego pliku tekstowego.

testers lub testersFile

Adresy e-mail testerów, którym chcesz dystrybuować kompilacje.

Możesz określić testerów jako listę adresów e-mail rozdzielonych przecinkami:

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

Możesz też określić ścieżkę do pliku zawierającego listę adresów e-mail rozdzielonych przecinkami:

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

Grupy testerów, do których chcesz dystrybuować kompilacje (zobacz Zarządzanie testerami ). Grupy są określane przy użyciu aliasy grupowe , które znajdziesz na karcie Testerzy w konsoli Dystrybucji aplikacji Firebase.

Grupy można określić w formie listy aliasów grup oddzielonych przecinkami:

groups="qa-team, android-testers"

Możesz też określić ścieżkę do pliku zawierającego listę aliasów grup rozdzielanych przecinkami:

groupsFile="/path/to/tester-groups.txt"
testDevices lub testDevicesFile

Następujące typy dystrybucji są częścią funkcji beta automatycznego testera .

Urządzenia testowe, do których chcesz dystrybuować kompilacje (patrz Testy automatyczne ).

Możesz określić urządzenia testowe jako listę specyfikacji urządzeń rozdzielonych średnikami:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

Możesz też określić ścieżkę do pliku zawierającego listę specyfikacji urządzeń rozdzielonych średnikami:

testDevicesFile="/path/to/testDevices.txt"
testUsername

Nazwa użytkownika do automatycznego logowania, która będzie używana podczas testów automatycznych .

testPassword lub testPasswordFile

Hasło do automatycznego logowania, które będzie wykorzystywane podczas testów automatycznych .

Możesz też określić ścieżkę do zwykłego pliku tekstowego zawierającego hasło:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

Nazwa zasobu pola nazwy użytkownika do automatycznego logowania, które będzie używane podczas testów automatycznych .

testPasswordResource

Nazwa zasobu pola hasła do automatycznego logowania, które będzie używane podczas testów automatycznych .

testNonBlocking

Uruchamiaj testy automatyczne asynchronicznie. Odwiedź konsolę Firebase, aby zobaczyć wyniki testów automatycznych.

stacktrace

Drukuje ślad stosu dla wyjątków użytkownika. Jest to pomocne podczas debugowania problemów.

Krok 4. Udostępnij swoją aplikację testerom

  1. Na koniec, aby spakować aplikację testową i zaprosić testerów, zbuduj elementy docelowe BUILD-VARIANT i appDistributionUpload BUILD-VARIANT z opakowaniem Gradle projektu, gdzie BUILD-VARIANT to opcjonalny smak produktu i typ kompilacji skonfigurowany w poprzednim kroku. Aby uzyskać więcej informacji na temat wersji produktów, zobacz Konfigurowanie wariantów kompilacji .

    Na przykład, aby dystrybuować aplikację przy użyciu wersji kompilacji release , uruchom następujące polecenie:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    Lub, jeśli uwierzytelniłeś się za pomocą konta Google i nie podałeś danych uwierzytelniających w pliku kompilacji Gradle, dołącz zmienną FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. Możesz także zastąpić wartości ustawione w pliku build.gradle , przekazując argumenty wiersza poleceń w postaci --<property-name>=<property-value> . Na przykład:

    • Aby przesłać kompilację debugowania do App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Aby zaprosić dodatkowych testerów lub usunąć istniejących testerów z projektu Firebase:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      Po dodaniu testera do projektu Firebase możesz dodać go do poszczególnych wersji. Usunięci testerzy nie będą już mieli dostępu do wydań w Twoim projekcie, ale nadal będą mogli zachować do nich dostęp przez pewien czas.

    Możesz także określić testerów, używając --file="/path/to/testers.txt" zamiast --emails .

    Zadania appDistributionAddTesters i appDistributionRemoveTesters akceptują również następujące argumenty:

    • projectNumber : numer Twojego projektu Firebase.

    • serviceCredentialsFile : Ścieżka do pliku danych uwierzytelniających usługi Google. Jest to ten sam argument, którego używa akcja przesyłania.

Wtyczka Gradle wyświetla następujące linki po przesłaniu wersji. Te linki pomogą Ci zarządzać plikami binarnymi i zapewnić testerom i innym programistom właściwą wersję:

  • firebase_console_uri — łącze do konsoli Firebase wyświetlające pojedynczą wersję. Możesz udostępnić ten link innym programistom w swojej organizacji.
  • testing_uri — link do wersji w środowisku testera (natywna aplikacja na Androida), który umożliwia testerom przeglądanie informacji o wersji i instalowanie aplikacji na swoim urządzeniu. Tester musi mieć dostęp do wydania, aby móc skorzystać z linku.
  • binary_download_uri — podpisany link, który bezpośrednio pobiera i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po godzinie.

Po rozpowszechnieniu kompilacji staje się ona dostępna w panelu dystrybucji aplikacji w konsoli Firebase przez 150 dni (pięć miesięcy). Gdy do wygaśnięcia kompilacji zostanie 30 dni, powiadomienie o wygaśnięciu pojawi się zarówno w konsoli, jak i na liście kompilacji testera na jego urządzeniu testowym.

Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymują e-mail z zaproszeniami do rozpoczęcia, a obecni testerzy otrzymują powiadomienia e-mailem, że nowa kompilacja jest gotowa do testowania (przeczytaj przewodnik konfiguracji testera , aby uzyskać instrukcje dotyczące instalowania aplikacji testowej). Możesz monitorować status każdego testera – czy przyjął zaproszenie i czy pobrał aplikację – w konsoli Firebase.

Testerzy mają 30 dni na przyjęcie zaproszenia do przetestowania aplikacji, zanim wygaśnie. Gdy do wygaśnięcia zaproszenia pozostało 5 dni, w konsoli Firebase obok testera w wersji pojawi się powiadomienie o wygaśnięciu. Zaproszenie można odnowić, wysyłając je ponownie za pomocą menu rozwijanego w wierszu testera.

Następne kroki