Rozpowszechnianie aplikacji na Androida testerom przy użyciu fastlane

Z tego przewodnika dowiesz się, jak udostępniać testerom kompilacje pakietu aplikacji na Androida za pomocą fastlane – platformy typu open source, która automatyzuje tworzenie i publikowanie aplikacji na iOS i Androida. Postępuj zgodnie z prostymi instrukcjami podanymi w dokumencie Fastfile. Po skonfigurowaniu pasa szybkiego ruchu i Fastfile możesz zintegrować Rozpowszechnianie aplikacji ze swoją konfiguracją szybkiej linii.

Rozpowszechnianie aplikacji integruje się z wewnętrzną usługą udostępniania aplikacji w Google Play, aby przetwarzać przesłane przez Ciebie pakiety aplikacji na Androida i udostępniać pliki APK zoptymalizowane pod kątem konfiguracji urządzeń testerów. Dystrybucja pakietów aplikacji na Androida umożliwia:

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

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

  • Testuj funkcje pakietów 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 Rozpowszechnianie aplikacji, musisz połączyć swoją aplikację Firebase z aplikacją w Google Play. Aby wykonać te działania, musisz mieć wymagany poziom dostępu.

Jeśli nie masz niezbędnego dostępu do Firebase, poproś właściciela projektu Firebase o przypisanie Ci odpowiedniej roli w ustawieniach uprawnień konsoli Firebase. Jeśli masz pytania dotyczące dostępu do projektu Firebase, w tym znajdowania lub przypisywania właściciela, przeczytaj najczęstsze pytania dotyczące uprawnień i dostępu do projektów Firebase.

Tabela poniżej dotyczy łączenia aplikacji Firebase z aplikacją w Google Play oraz przesyłania pakietów aplikacji na Androida.

Działanie w konsoli Firebase Wymagane uprawnienia Role, które domyślnie zawierają wymagane uprawnienia Dodatkowe wymagane role
Łączenie aplikacji Firebase z aplikacją w Google Play firebase.playLinks.update jedną z tych ról: dostępu do konta dewelopera w Google Play jako administratora,
Przesyłanie pakietów aplikacji na Androida do Rozpowszechniania aplikacji firebaseappdistro.releases.update jedną z tych ról: ––

Zanim zaczniesz

  1. Dodaj Firebase do swojego projektu na Androida, chyba że masz to już za sobą. Po zakończeniu tego procesu w projekcie Firebase masz już aplikację Firebase na Androida.

    Jeśli nie korzystasz z żadnych innych usług Firebase, musisz tylko utworzyć projekt i zarejestrować aplikację. Jeśli zdecydujesz się na używanie dodatkowych usług, wykonaj wszystkie czynności opisane w artykule Dodawanie Firebase do projektu na Androida.

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

    • Aplikacja w Google Play i aplikacja Firebase na Androida są zarejestrowane przy użyciu tej samej nazwy pakietu.

    • Aplikację w Google Play konfiguruje się w panelu aplikacji i jest ona rozpowszechniana na jednej ze ścieżek Google Play (test wewnętrzny, test zamknięty, test 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 widoczny jest jeden z tych stanów: Test wewnętrzny (nie wersja robocza testu wewnętrznego), Test zamknięty, Test otwarty lub 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ć integrację usługi Rozpowszechniania aplikacji i wybrać aplikacje Firebase na Androida, które chcesz połączyć z Google Play.

    Dowiedz się więcej o łączeniu z Google Play.

Krok 1. Skonfiguruj szybki pas

  1. Zainstaluj i skonfiguruj fastlane

  2. Aby dodać Rozpowszechnianie aplikacji do konfiguracji fastline, uruchom to polecenie z poziomu głównego projektu na Androida:

    fastlane add_plugin firebase_app_distribution

    Jeśli w odpowiedzi pojawi się opcja, wybierz Option 3: RubyGems.org.

Krok 2. Uwierzytelnij za pomocą Firebase

Zanim użyjesz wtyczki fastlane, musisz najpierw uwierzytelnić się w projekcie Firebase na jeden z poniższych sposobów. Domyślnie wtyczka fastlane szuka danych uwierzytelniających w interfejsie wiersza poleceń Firebase, jeśli nie jest używana żadna inna metoda uwierzytelniania.

Krok 3. Konfigurowanie pliku Fastfile i rozpowszechnianie aplikacji

  1. Na pasie ./fastlane/Fastfile dodaj blok firebase_app_distribution. Aby skonfigurować dystrybucję, użyj tych parametrów:
    Parametry firebase_app_distribution
    app

    Wymagany: identyfikator aplikacji Firebase. Identyfikator aplikacji możesz znaleźć w konsoli Firebase na stronie ustawień ogólnych.

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    Token odświeżania, który jest drukowany podczas uwierzytelniania środowiska CI za pomocą interfejsu wiersza poleceń Firebase (więcej informacji znajdziesz w artykule Używanie interfejsu wiersza poleceń w systemach CI).

    service_credentials_file

    Ścieżka do pliku json Twojego konta usługi Google. Powyżej znajdziesz informacje o uwierzytelnianie z użyciem danych logowania konta usługi.

    android_artifact_type

    Określa typ pliku Androida (APK lub AAB).

    android_artifact_path

    Zastępuje ustawienie apk_path (wycofane). Ścieżka bezwzględna do pliku APK lub pakietu AAB, który chcesz przesłać. Jeśli nie określono inaczej, fastlane określa lokalizację pliku na podstawie pasa, na którym został wygenerowany.

    release_notes
    release_notes_file

    Informacje o wersji tej kompilacji.

    Informacje o wersji możesz podać bezpośrednio:

    release_notes: "Text of release notes"

    Możesz też podać ścieżkę do zwykłego pliku tekstowego:

    release_notes_file: "/path/to/release-notes.txt"
    testers
    testers_file

    Adresy e-mail testerów, których chcesz zaprosić.

    Testerów możesz podać w postaci listy oddzielonych przecinkami adresów e-mail:

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

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

    testers_file: "/path/to/testers.txt"
    groups
    groups_file

    Grupy testerów, które chcesz zaprosić (więcej informacji znajdziesz w artykule Zarządzanie testerami). Grupy określa się za pomocą aliasów grup, które możesz wyszukać w konsoli Firebase.

    Grupy możesz podać w postaci listy rozdzielanej przecinkami:

    groups: "qa-team, trusted-testers"

    Możesz też podać ścieżkę do pliku tekstowego zawierającego oddzieloną przecinkami listę nazw grup:

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

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

    Możesz podać urządzenia testowe w postaci listy urządzeń testowych rozdzielonych średnikami:

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

    Możesz też podać ścieżkę do pliku tekstowego zawierającego rozdzielaną średnikami listę urządzeń testowych:

    test_devices_file: "/path/to/test-devices.txt"
    test_username

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

    test_password
    test_password_file

    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:

    test_password_file: "/path/to/test-password.txt"
    test_username_resource

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

    test_password_resource

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

    test_non_blocking

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

    debug

    Flaga wartości logicznej. Aby wydrukować szczegółowe dane debugowania, możesz ustawić wartość true.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # 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!",
            android_artifact_type: "AAB"
        )
    end
end

Aby udostępnić kompilację testerom, wyznacz tę ścieżkę:

fastlane <lane>

Wartość zwrotna tego działania to hasz, który reprezentuje przesłaną wersję. Ten hasz jest też dostępny za pomocą funkcji lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]. Więcej informacji o polach dostępnych w tym haszu znajdziesz w dokumentacji interfejsu API REST.

Wtyczka fastlane generuje poniższe linki po przesłaniu wersji. Te linki ułatwiają zarządzanie plikami binarnymi oraz sprawdzanie, czy testerzy i inni deweloperzy mają odpowiednią wersję:

  • Link do konsoli Firebase z wyświetloną pojedynczą wersją. Możesz udostępnić ten link innym deweloperom w Twojej organizacji.
  • Link do wersji w środowisku testowym (aplikacja natywna na Androida), który umożliwia testerom wyświetlenie informacji o wersji i instalowanie aplikacji na urządzeniach. Tester musi mieć dostęp do wersji, aby użyć linku.
  • Podpisany link, który bezpośrednio pobiera i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po godzinie.

Rozpowszechniona kompilacja jest przez 150 dni dostępna w panelu Rozpowszechniania aplikacji w konsoli Firebase. Gdy upłynie 30 dni od wygaśnięcia kompilacji, w konsoli i na liście kompilacji na urządzeniu testowym pojawi się odpowiednie powiadomienie.

Testerzy, którzy nie zostali wcześniej zaproszeni do testowania aplikacji, otrzymają e-maile z zaproszeniem do testowania. Obecni testerzy otrzymują e-maile z powiadomieniami o tym, że nowa kompilacja jest gotowa do przetestowania. Aby dowiedzieć się, jak zainstalować aplikację testową, przeczytaj przewodnik po konfiguracji testerów. Możesz monitorować stan każdego testera, aby ustalić, czy zaakceptował zaproszenie i czy pobrał aplikację w konsoli Firebase.

(Opcjonalnie) Aby automatycznie zwiększać numer kompilacji za każdym razem, gdy tworzysz nową wersję w Rozpowszechnianiu aplikacji, możesz użyć działania firebase_app_distribution_get_latest_release i na przykład wtyczki fastlane increment_version_code. Ten kod pokazuje, jak automatycznie zwiększać liczbę kompilacji:

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

Więcej informacji o działaniu firebase_app_distribution_get_latest_release znajdziesz w artykule Uzyskiwanie informacji o najnowszej wersji aplikacji.

Krok 4 (opcjonalny). zarządzanie testerami na potrzeby dystrybucji,

Testerów możesz dodawać do projektu lub grupy i usuwać z niego za pomocą pliku Fastfile lub bezpośrednio uruchamiając działania szybkiej linii. Działania wykonywane bezpośrednio zastępują wartości ustawione w polu Fastfile.

Po dodaniu testera do projektu Firebase możesz dodać go do poszczególnych wersji. Testerzy usunięci z projektu Firebase nie mają już dostępu do wersji w tym projekcie, ale mogą zachować do nich dostęp przez pewien czas.

Jeśli masz dużą liczbę testerów, warto zastanowić się nad użyciem grup.

Użyj Fastfile

# 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

Uruchom działania szybkiego pasa

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"

Możesz też zamiast --emails określić testerów --file="/path/to/testers.txt.

Zadania firebase_app_distribution_add_testers i firebase_app_distribution_remove_testers akceptują też te argumenty:

  • project_name: numer projektu Firebase.
  • group_alias (opcjonalnie): testerzy są dodawani do wskazanej grupy (lub z niej usuwani).
  • service_credentials_file: ścieżka do pliku danych logowania do usług Google.
  • firebase_cli_token: token uwierzytelniania dla interfejsu wiersza poleceń Firebase.

service_credentials_file i firebase_cli_token to te same argumenty używane w działaniu przesyłania.

Krok 5 (opcjonalny). Uzyskiwanie informacji o najnowszej wersji aplikacji

Działanie firebase_app_distribution_get_latest_release pozwala pobrać informacje o najnowszej wersji aplikacji w usłudze Rozpowszechnianie aplikacji, w tym informacje o wersji aplikacji, informacjach o wersji i czasie utworzenia. Przypadki użycia obejmują automatyczne zwiększanie wersji i przenoszenie informacji o wersji z poprzedniej wersji.

Zwracaną wartością działania jest hasz najnowszej wersji. Ten hasz jest też dostępny za pomocą funkcji lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]. Więcej informacji o polach dostępnych w tym haszu znajdziesz w dokumentacji interfejsu API REST.

Parametry

Parametry firebase_app_distribution_get_latest_release
app

Wymagany: identyfikator aplikacji Firebase. Identyfikator aplikacji możesz znaleźć w konsoli Firebase na stronie ustawień ogólnych.

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

Token odświeżania, który jest drukowany podczas uwierzytelniania środowiska CI za pomocą interfejsu wiersza poleceń Firebase (więcej informacji znajdziesz w artykule Używanie interfejsu wiersza poleceń w systemach CI).

service_credentials_file

Ścieżka do pliku json Twojego konta usługi Google. Powyżej znajdziesz informacje o uwierzytelnianie z użyciem danych logowania konta usługi.

debug

Flaga wartości logicznej. Aby wydrukować szczegółowe dane debugowania, możesz ustawić wartość true.

Dalsze kroki