Udostępnianie aplikacji na Androida testerom przy użyciu Gradle

.


Możesz zintegrować aplikację App Distribution z procesem kompilacji Androida za pomocą Wtyczka do obsługi Gradle App Distribution. Wtyczka umożliwia określenie testerów informacji o wersji w pliku Gradle aplikacji, które umożliwiają konfigurowanie dystrybucji do różnych typów kompilacji i wariantów aplikacji.

Z tego przewodnika dowiesz się, jak udostępniać testerom pakiety Android App Bundle za pomocą wtyczki do obsługi Gradle App Distribution.

Usługa App Distribution integruje się z usługą wewnętrznego udostępniania aplikacji Google Play, aby przetwarzania przesłanych pakietów aplikacji na Androida i udostępniania plików APK zoptymalizowanych pod kątem konfiguracji urządzeń. Dystrybucja pakietów aplikacji na Androida umożliwia:

  • Uruchamiaj zoptymalizowane pliki APK (udostępniane przez Google Play), które są zoptymalizowane pod kątem dla testerów urządzenia.

  • Wykrywanie i debugowanie problemów związanych z urządzeniami.

  • Przetestuj funkcje pakietu aplikacji, takie jak Play Feature Delivery i Play Asset Delivery.

  • Zmniejsz rozmiar pobieranych plików przeznaczonych dla testerów.

Wymagane uprawnienia

Aby przesłać pakiety aplikacji na Androida do usługi App Distribution, musisz połączyć z nią swoją aplikację Firebase w aplikacji Google Play. Musisz mieć wymagany poziom dostępu do wykonania tych czynności.

Jeśli nie masz odpowiedniego dostępu do Firebase, możesz poprosić o projekt Firebase. właściciela, aby przypisać Ci odpowiednią rolę w Firebase ustawień uprawnień konsoli. Jeśli masz pytania dotyczące dostępu do projektu Firebase, w tym znaleźć lub przypisać właściciela, zapoznaj się z „Uprawnienia i dostęp do projektów Firebase” Najczęstsze pytania.

Poniższa tabela dotyczy łączenia aplikacji Firebase z aplikacją w Google Play, a także przesyłać pakiety aplikacji na Androida.

Działanie w konsoli Firebase Wymagane uprawnienia Role, które obejmują wymagane uprawnienia przyznane przez domyślny Dodatkowe wymagane role
Połącz aplikację Firebase z aplikacją w usłudze Google Play firebase.playLinks.update Jedna z tych ról: Dostęp do konta dewelopera w usłudze Google Play jako Administracja
Prześlij pakiety aplikacji na Androida do App Distribution firebaseappdistro.releases.update Jedna z tych ról: ––

Zanim zaczniesz

  1. Dodaj Firebase do swojego urządzenia z Androidem, chyba że masz to już za sobą projekt. Na koniec tego procesu mieć aplikację Firebase na Androida w swoim projekcie Firebase.

    Jeśli nie korzystasz z żadnych innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli zdecydujesz się na korzystanie z dodatkowych usług, wykonaj wszystkie czynności Dodaj Firebase do swojego projektu na Androida.

  2. Aby utworzyć połączenie Firebase z Google Play i przesyłać pakiety aplikacji na Androida, sprawdź, czy aplikacja spełnia te wymagania:

    • Aplikacja w Google Play i aplikacja Firebase na Androida są zarejestrowane. o tej samej nazwie pakietu.

    • aplikacja w Google Play została skonfigurowana w aplikacji, panel i jest rozpowszechniana na jednej ze ścieżek Google Play (testy wewnętrzne, (test zamknięty, otwarty lub wersja produkcyjna).

    • Zakończono sprawdzanie aplikacji w Google Play i aplikacja została opublikowana. Aplikacja jest opublikowana, jeśli w kolumnie Stan aplikacji wyświetla się jeden z te stany: Test wewnętrzny (nie Test wewnętrzny wersji roboczej), Test zamknięty, otwarty lub wersja produkcyjna.

  3. Połącz aplikację Firebase na Androida z kontem dewelopera w Google Play:

    1. W konsoli Firebase otwórz Ustawienia projektu, a następnie wybierz kartę Integracje.

    2. Na karcie Google Play kliknij Połącz.
      Jeśli masz już połączenia z Google Play, kliknij Zarządzaj

    3. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć App Distribution. i wybierz aplikacje Firebase na Androida, które chcesz połączyć z Google Graj.

    Więcej informacji o łączeniu konta z Google Play.

Krok 1. Skonfiguruj projekt na Androida

  1. w pliku Gradle na poziomie głównym (na poziomie projektu); (<project>/build.gradle.kts lub <project>/build.gradle), dodaj Wtyczka App Distribution do 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.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.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ę do Gradle App Distribution:

    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 firmowego serwera proxy lub zapory sieciowej, dodaj: Właściwość systemowa Java który umożliwia usłudze App Distribution przesyłanie danych o wersjach do Firebase:

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

Krok 2. Uwierzytelnij za pomocą Firebase

Zanim użyjesz wtyczki Gradle, musisz najpierw uwierzytelnić się projektu Firebase na jeden z poniższych sposobów. Domyślnie wtyczka Gradle szuka danych logowania z interfejsu wiersza poleceń Firebase, jeśli nie ma żadnego innego 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 App Distribution, dodając na stronie co najmniej jedną sekcję firebaseAppDistribution.

Aby na przykład udostępnić testerom kompilację release, postępuj zgodnie z tymi instrukcjami instrukcje:

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

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

  // ...
}

Możesz skonfigurować App Distribution dla typy kompilacji i smaki produktów.

Aby na przykład rozpowszechniać kompilacje debug i release w grupie „demo” i „pełny” postępuj zgodnie z 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 tych parametrów:

Parametry kompilacji App Distribution
appId

Identyfikator aplikacji Firebase Twojej aplikacji. Wymagane tylko wtedy, gdy nie masz Wtyczka do obsługi Gradle usług Google została zainstalowana. Identyfikator aplikacji znajdziesz tutaj: w pliku google-services.json lub w Firebase na konsoli Ustawienia ogólne. Wartość w tabeli build.gradle zastępuje wartość wyjściową z google-services wtyczki.

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

Ścieżka do pliku JSON klucza prywatnego konta usługi. Tylko wymagane jeśli używasz uwierzytelniania za pomocą 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 pakietu AAB, który chcesz przesłać.

releaseNotes lub releaseNotesFile

Informacje o wersji tej kompilacji.

Możesz podać informacje o wersji bezpośrednio lub ścieżki do zwykłego pliku tekstowego.

testers lub testersFile

Adresy e-mail testerów, którzy mają rozprowadzać kompilacje do.

Możesz podać testerów jako listę adresów e-mail rozdzielonych przecinkami adresy:

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

Możesz też podać ścieżkę do pliku zawierającego rozdzielone przecinkami lista adresów e-mail:

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

Grupy testerów, którym chcesz rozpowszechniać kompilacje (zobacz Zarządzaj testerami). Grupy określa się przy użyciu aliasów grup, których możesz używać na karcie Testerzy w Firebase. Konsola App Distribution.

Możesz podać rozdzieloną przecinkami listę grup aliasy:

groups="qa-team, android-testers"

Możesz też podać ścieżkę do pliku zawierającego rozdzielone przecinkami lista aliasów grup:

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

Poniższe typy dystrybucji są częścią funkcji automatycznych testerów w wersji beta.

Urządzenia testowe, na które chcesz rozpowszechniać kompilacje (patrz Testy automatyczne).

Urządzenia testowe możesz podać w postaci listy wartości rozdzielonych średnikami dane techniczne urządzenia:

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

Możesz też podać ścieżkę do pliku zawierającego rozdzielone średnikami lista specyfikacji urządzenia:

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

Nazwa użytkownika do automatycznego logowania się podczas testów automatycznych.

testPassword lub testPasswordFile

Hasło do automatycznego logowania używane podczas testów automatycznych.

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

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

Nazwa zasobu w polu nazwy użytkownika na potrzeby automatycznego logowania, które jest używane podczas testów automatycznych.

testPasswordResource

Nazwa zasobu w polu hasła na potrzeby automatycznego logowania się podczas testów automatycznych.

testNonBlocking

asynchronicznie uruchamiać testy automatyczne, Otwórz konsolę Firebase, aby wyświetlić wyniki automatycznych testów.

stacktrace

Drukuje zrzut stosu dla wyjątków dotyczących użytkowników. Jest to przydatne, gdy i debugowaniu.

Krok 4. Udostępnianie aplikacji testerom

  1. Na koniec, aby spakować aplikację testową i zaprosić testerów, utwórz cele BUILD-VARIANT i appDistributionUploadBUILD-VARIANT z opakowanie Gradle projektu, gdzie BUILD-VARIANT jest opcjonalnym rodzaj usługi i typ kompilacji skonfigurowane w poprzednim kroku. Więcej informacji o smakach produktów znajdziesz na stronie Skonfiguruj warianty kompilacji.

    Aby np. dystrybuować aplikację przy użyciu wariantu kompilacji release, uruchom polecenie to polecenie:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    lub uwierzytelnianie za pomocą konta Google i nie podano danych logowania w pliku kompilacji Gradle, dołącz Zmienna FIREBASE_TOKEN:

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

    • Aby przesłać kompilację do debugowania pod kątem środowiska App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
      
    • Aby zaprosić dodatkowych testerów lub usunąć istniejących testerów z 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"
      

      Po dodaniu testera do projektu Firebase możesz go dodać do poszczególnych wersji. Usunięci testerzy utracą dostęp do: wersji w projekcie, ale nadal mogą zachować do nich dostęp w określonym przedziale czasu.

    Możesz też zamiast tego użyć parametru --file="/path/to/testers.txt" --emails

    Zadania appDistributionAddTesters i appDistributionRemoveTesters możesz też zaakceptować następujące argumenty:

    • projectNumber: numer projektu Firebase.

    • serviceCredentialsFile: ścieżka do pliku danych logowania do usług Google. Jest to ten sam argument używany w działaniu przesyłania.

Po przesłaniu wersji wtyczka do Gradle generuje poniższe linki. Te aby ułatwić sobie zarządzanie plikami binarnymi i sprawdzać, czy testerzy i inni deweloperzy mają odpowiednią wersję:

  • firebase_console_uri – link do konsoli Firebase z wyświetlonym premiery singla. Możesz udostępnić ten link innym deweloperom na swoim org.
  • testing_uri – link do wersji w interfejsie testera (aplikacja natywna na Androida), która umożliwia testerom wyświetlenie wersji notatki i zainstalować aplikację na urządzeniu. Tester potrzebuje dostępu do tych elementów: wydania, aby móc użyć linku.
  • binary_download_uri – podpisany link, który umożliwia bezpośrednie pobieranie i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po upływie 1 godz.

Gdy rozpowszechnisz kompilację, staje się ona dostępna w Panel App Distribution konsoli Firebase przez 150 dni (5 miesięcy). Jeśli upłynie 30 dni od wygaśnięcia kompilacji, w obu konsolę i listę kompilacji na urządzeniu testowym.

Testerzy, którzy nie zostali zaproszeni do testowania aplikacji, otrzymają e-maile z zaproszeniami a dotychczasowi testerzy otrzymają e-maile z powiadomieniami o nowej kompilacji. jest gotowy do testowania (przeczytaj przewodnik po konfiguracji dla testerów , aby dowiedzieć się, jak zainstalować test ). Możesz sprawdzać stan każdego testera – czy zaakceptował on oraz informację o pobraniu aplikacji w konsoli Firebase.

Testerzy mają 30 dni na zaakceptowanie zaproszenia do testowania aplikacji, zanim wygaśnie. Jeśli zaproszenie wygasa po 5 dniach, w sekcji Firebase konsola obok testera dotyczącej wersji. Zaproszenie można została odnowiona, wysyłając ją ponownie za pomocą menu w wierszu testera.

Dalsze kroki