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

W tym przewodniku opisano, jak dystrybuować kompilacje AAB wśród testerów za pomocą Fastlane , platformy open source, która automatyzuje tworzenie i wydawanie aplikacji na iOS i Androida. Postępuje zgodnie z prostymi instrukcjami zdefiniowanymi w pliku Fastfile . Po skonfigurowaniu Fastlane i Fastfile możesz zintegrować Dystrybucję aplikacji z konfiguracją Fastlane.

App Distribution integruje się z wewnętrzną usługą udostępniania aplikacji w Google Play, aby przetwarzać przesłane pliki AAB i wyświetlać pliki APK zoptymalizowane pod kątem konfiguracji urządzeń Twoich testerów. Dystrybucja pakietów AAB umożliwia wykonanie następujących czynności:

  • Uruchom zoptymalizowane pliki APK (obsługiwane przez Google Play), które są zoptymalizowane pod kątem urządzeń Twoich testerów.

  • Odkrywaj i debuguj problemy specyficzne dla urządzenia.

  • Przetestuj funkcje pakietu aplikacji, takie jak dostarczanie funkcji Play i dostarczanie zasobów Play .

  • Zmniejsz rozmiar plików do pobrania dla testerów.

Wymagane uprawnienia

Aby przesłać pliki AAB do App Distribution, musisz połączyć aplikację Firebase z aplikacją w Google Play . Aby wykonać te czynności, musisz mieć wymagany poziom dostępu.

Jeśli nie masz niezbędnego dostępu do Firebase, możesz poprosić właściciela projektu Firebase o przypisanie Ci odpowiedniej roli za pomocą ustawień uprawnień w konsoli Firebase . Jeśli masz pytania dotyczące dostępu do projektu Firebase, w tym znalezienia lub przypisania właściciela, przejrzyj często zadawane pytania „Uprawnienia i dostęp do projektów Firebase” .

Poniższa tabela dotyczy łączenia aplikacji Firebase z aplikacją w Google Play, a także przesyłania plików AAB.

Akcja w konsoli Firebase Wymagane uprawnienia IAM Role uprawnień, które domyślnie obejmują wymagane uprawnienia Dodatkowe wymagane role
Połącz aplikację Firebase z aplikacją w Google Play firebase.playLinks.update Jedna z następujących ról: Dostęp do konta programisty Google Play jako administrator
Prześlij pliki AAB do dystrybucji aplikacji firebaseappdistro.releases.update Jedna z następujących ról: ––

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida . Po zakończeniu tej procedury będziesz mieć aplikację Firebase na Androida w swoim projekcie Firebase.

    Jeśli nie korzystasz z innych produktów Firebase, wystarczy, że utworzysz projekt i zarejestrujesz swoją aplikację. Jeśli zdecydujesz się skorzystać z dodatkowych produktów, pamiętaj o wykonaniu wszystkich kroków z rozdziału Dodaj Firebase do swojego projektu na Androida .

  2. Aby utworzyć połączenie Firebase z Google Play i przesłać pliki AAB, upewnij się, że Twoja aplikacja spełnia następujące wymagania:

    • Zarówno aplikacja w Google Play, jak i aplikacja Firebase na Androida są zarejestrowane przy użyciu tej samej nazwy pakietu.

    • Aplikację w Google Play konfiguruje się na panelu aplikacji i dystrybuuje do jednej ze ścieżek Google Play (testy wewnętrzne, testy zamknięte, testy otwarte lub produkcja).

    • Zakończono sprawdzanie aplikacji w Google Play i opublikowano ją. Twoja aplikacja została opublikowana, jeśli w kolumnie Stan aplikacji wyświetlany jest jeden z następujących stanów: Testy wewnętrzne (nie wersja robocza testów wewnętrznych), Testy zamknięte, Testy otwarte lub Produkcja.

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

    1. W konsoli Firebase przejdź do pliku Ustawienia projektu , a następnie wybierz zakładkę Integracje .

    2. Na karcie Google Play kliknij Link .
      Jeśli masz już linki do Google Play, kliknij Zarządzaj .

    3. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć integrację dystrybucji 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 fastlane

  1. Zainstaluj i skonfiguruj Fastlane .

  2. Aby dodać dystrybucję aplikacji do konfiguracji Fastlane, uruchom następujące polecenie w katalogu głównym projektu na Androida:

    fastlane add_plugin firebase_app_distribution

    Jeśli polecenie wyświetli monit z opcją, wybierz Option 3: RubyGems.org .

Krok 2. Uwierzytelnij się w Firebase

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

Krok 3. Skonfiguruj Fastfile i rozpowszechniaj swoją aplikację

  1. Na ścieżce ./fastlane/Fastfile dodaj blok firebase_app_distribution . Aby skonfigurować dystrybucję, użyj następujących parametrów:
    parametry firebase_app_distribution
    app

    Wymagane : identyfikator aplikacji Firebase Twojej aplikacji. Identyfikator aplikacji znajdziesz w konsoli Firebase, na stronie Ustawienia ogólne .

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

    Token odświeżania drukowany podczas uwierzytelniania środowiska CI za pomocą interfejsu CLI Firebase (więcej informacji można znaleźć w artykule Używanie interfejsu CLI w systemach CI ).

    service_credentials_file

    Ścieżka do pliku JSON konta usługi Google. Zobacz powyżej, jak uwierzytelnić się przy użyciu poświadczeń konta usługi .

    android_artifact_type

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

    android_artifact_path

    Zastępuje apk_path (przestarzałą). Ścieżka bezwzględna do pliku APK lub AAB, który chcesz przesłać. Jeśli nie określono, fastlane określa lokalizację pliku na podstawie ścieżki, na której plik został wygenerowany.

    release_notes
    release_notes_file

    Informacje o wersji dla tej kompilacji.

    Możesz bezpośrednio określić informacje o wersji:

    release_notes: "Text of release notes"

    Lub określ ś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ć.

    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 zwykłego pliku tekstowego zawierającego listę adresów e-mail rozdzielonych przecinkami:

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

    Grupy testerów, które chcesz zaprosić (więcej informacji znajdziesz w Zarządzaj testerami ). Grupy są określane przy użyciu aliasy grupowe , które możesz sprawdzić w konsoli Firebase.

    Grupy można określić w formie listy rozdzielanej przecinkami:

    groups: "qa-team, trusted-testers"

    Możesz też określić ścieżkę do zwykłego pliku tekstowego zawierającego listę nazw grup rozdzielonych przecinkami:

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

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

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

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

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

    Możesz też określić ścieżkę do zwykłego pliku tekstowego zawierającego listę urządzeń testowych rozdzielonych średnikami:

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

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

    test_password
    test_password_file

    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:

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

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

    test_password_resource

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

    test_non_blocking

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

    debug

    Flaga logiczna. Możesz ustawić tę opcję na true , aby wydrukować szczegółowe dane wyjściowe debugowania.

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, uruchom swój tor:

fastlane <lane>

Wartością zwracaną przez akcję jest hash reprezentujący przesłaną wersję. Ten skrót jest również dostępny przy użyciu lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] . Więcej informacji na temat dostępnych pól w tym hashu znajdziesz w dokumentacji API REST .

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

  • Link do konsoli Firebase wyświetlający pojedynczą wersję. Możesz udostępnić ten link innym programistom w swojej organizacji.
  • 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.
  • Podpisany link, który bezpośrednio pobiera i instaluje plik binarny aplikacji (plik APK lub AAB). Link wygasa po godzinie.

Po rozpowszechnieniu kompilacji będzie ona dostępna w panelu dystrybucji aplikacji w konsoli Firebase przez 150 dni. Gdy do wygaśnięcia kompilacji pozostało 30 dni, w konsoli oraz na liście kompilacji testera na urządzeniu testowym pojawi się powiadomienie o wygaśnięciu.

Testerzy, którzy nie zostali wcześniej zaproszeni do testowania aplikacji, otrzymują zaproszenia e-mailem, aby rozpocząć. Obecni testerzy otrzymują powiadomienia e-mailem, że nowa kompilacja jest gotowa do testowania. Aby dowiedzieć się, jak zainstalować aplikację testową, zapoznaj się z instrukcją konfiguracji testera . Możesz monitorować status każdego testera, aby sprawdzić, czy przyjął zaproszenie i czy pobrał aplikację w konsoli Firebase.

(Opcjonalnie) Aby automatycznie zwiększać numer kompilacji za każdym razem, gdy tworzysz nową wersję w App Distribution, możesz użyć akcji firebase_app_distribution_get_latest_release i na przykład wtyczki fastlane increment_version_code . Poniższy kod zawiera przykład automatycznego zwiększania numeru 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

Aby dowiedzieć się więcej o akcji firebase_app_distribution_get_latest_release , zobacz Uzyskiwanie informacji o najnowszej wersji aplikacji .

Krok 4 (opcjonalnie). Zarządzanie testerami dystrybucji

Możesz dodawać i usuwać testerów ze swojego projektu lub grupy, korzystając z pliku Fastfile lub bezpośrednio uruchamiając akcje Fastlane. Uruchamianie akcji bezpośrednio zastępuje wartości ustawione w 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 Twoim projekcie, ale mogą zachować dostęp do Twoich wersji przez pewien czas.

Jeśli masz dużą liczbę testerów, powinieneś rozważyć użycie 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 Fastlane

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 także określić testerów, używając --file="/path/to/testers.txt zamiast --emails .

Zadania firebase_app_distribution_add_testers i firebase_app_distribution_remove_testers akceptują również następujące argumenty:

  • project_name : numer Twojego projektu Firebase.
  • group_alias (opcjonalne): Jeśli określono, testerzy są dodawani (lub usuwani z) określonej grupy.
  • service_credentials_file : Ścieżka do pliku danych uwierzytelniających usługi Google.
  • firebase_cli_token : Token uwierzytelniania dla interfejsu wiersza polecenia Firebase.

service_credentials_file i firebase_cli_token to te same argumenty, których używa akcja przesyłania.

Krok 5 (opcjonalnie). Uzyskaj informacje o najnowszej wersji swojej aplikacji

Możesz użyć akcji firebase_app_distribution_get_latest_release , aby pobrać informacje o najnowszej wersji aplikacji w App Distribution, w tym informacje o wersji aplikacji, informacje o wersji i czas utworzenia. Przykłady użycia obejmują automatyczne zwiększanie wersji i przenoszenie informacji o wersji z poprzedniej wersji.

Wartość zwracana przez akcję to skrót reprezentujący najnowszą wersję. Ten skrót jest również dostępny przy użyciu lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] . Więcej informacji na temat dostępnych pól w tym hashu znajdziesz w dokumentacji API REST .

Parametry

parametry firebase_app_distribution_get_latest_release
app

Wymagane : identyfikator aplikacji Firebase Twojej aplikacji. Identyfikator aplikacji znajdziesz w konsoli Firebase, na stronie Ustawienia ogólne .

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

Token odświeżania drukowany podczas uwierzytelniania środowiska CI za pomocą interfejsu CLI Firebase (więcej informacji można znaleźć w artykule Używanie interfejsu CLI w systemach CI ).

service_credentials_file

Ścieżka do pliku JSON konta usługi Google. Zobacz powyżej, jak uwierzytelnić się przy użyciu poświadczeń konta usługi .

debug

Flaga logiczna. Możesz ustawić tę opcję na true , aby wydrukować szczegółowe wyniki debugowania.

Następne kroki