Check out what’s new from Firebase at Google I/O 2022. Learn more

Dystrybuuj aplikacje na Androida do testerów za pomocą fastlane

W tym przewodniku opisano, jak rozpowszechniać kompilacje AAB wśród testerów za pomocą fastlane , platformy open source, która automatyzuje tworzenie i wydawanie aplikacji na iOS i Androida. Wykonuje proste instrukcje zdefiniowane w Fastfile . Po skonfigurowaniu fastlane i Fastfile możesz zintegrować dystrybucję aplikacji z konfiguracją fastlane.

Aby postępować zgodnie z tym przewodnikiem, musisz spełnić następujące wymagania wstępne: dostęp do projektu Firebase ( Właściciel lub Administrator Firebase ), dostęp do konta programisty Google Play ( Właściciel lub Administrator ) oraz aplikacja, która jest opublikowana w Google Play.

Informacje o dystrybucji pakietów aplikacji na Androida

Dystrybucja aplikacji integruje się z wewnętrzną usługą udostępniania aplikacji w Google Play, aby przetwarzać przesłane pliki AAB i udostępniać pakiety APK zoptymalizowane pod kątem konfiguracji urządzeń testerów. Dystrybuując AAB, możesz:

  • Uruchamiaj zoptymalizowane pakiety APK (serwowane przez Google Play), które są zoptymalizowane pod kątem urządzeń Twoich testerów.
  • Odkrywaj i debuguj problemy specyficzne dla urządzenia.
  • Testuj funkcje pakietu aplikacji, takie jak dostawa funkcji Play i dostawa zasobów Play
  • Zmniejsz rozmiar plików do pobrania dla testerów.

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida . Pod koniec tego przepływu pracy będziesz mieć aplikację Firebase na Androida w swoim projekcie Firebase.

    Jeśli nie używasz innych produktów Firebase, wystarczy, że utworzysz projekt i zarejestrujesz swoją aplikację. Jeśli zdecydujesz się na korzystanie z dodatkowych produktów, wykonaj wszystkie czynności opisane w sekcji Dodaj Firebase do swojego projektu na Androida .

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

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

    • Aplikacja w Google Play jest konfigurowana w panelu aplikacji i jest dystrybuowana do jednej ze ścieżek Google Play (testy wewnętrzne, testy zamknięte, testy otwarte lub produkcja).

    • Przegląd aplikacji w Google Play został zakończony i aplikacja została opublikowana. Twoja aplikacja zostanie opublikowana, jeśli w kolumnie Stan aplikacji widoczny jest jeden z następujących stanów: Testy wewnętrzne (nie Testy wewnętrzne w wersji roboczej), Testy zamknięte, Testy otwarte lub Produkcja.

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

    1. W konsoli Firebase przejdź do projektu , a następnie wybierz kartę Integracje .

    2. Na karcie Google Play kliknij Połącz .
      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ę aplikacji App Distribution i wybrać, które aplikacje Firebase na Androida mają być połączone 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 z katalogu głównego projektu 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 swoim projekcie Firebase. Można to osiągnąć na trzy sposoby:

Krok 3. Skonfiguruj Fastfile i rozpowszechniaj swoją aplikację

  1. Na pasie ./fastlane/Fastfile dodaj blok firebase_app_distribution . Użyj następujących parametrów, aby skonfigurować dystrybucję:
    parametry firebase_app_distribution
    app

    Wymagane : identyfikator Firebase aplikacji 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, który jest drukowany po uruchomieniu akcji logowania wtyczki (patrz Uwierzytelnianie przy użyciu konta Google powyżej) lub podczas uwierzytelniania środowiska CI za pomocą interfejsu Firebase CLI (więcej informacji znajdziesz w sekcji Używanie interfejsu CLI z systemami CI ).

    service_credentials_file

    Ścieżka do pliku json konta usługi Google. Zobacz powyżej, jak uwierzytelniać 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łe). Bezwzględna ścieżka 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.

    Informacje o wersji można określić bezpośrednio:

    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 oddzielonych 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ć (patrz Zarządzanie testerami ). Grupy są określone za pomocą aliasy grupowe , które możesz sprawdzić w konsoli Firebase.

    Możesz określić grupy jako listę rozdzielaną przecinkami:

    groups: "qa-team, trusted-testers"

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

    groups_file: "/path/to/groups.txt"
    debug

    Flaga logiczna. Możesz ustawić to na true aby wydrukować pełne 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.
        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 swoją linię:

fastlane <lane>

Po rozesłaniu kompilacji jest ona dostępna w panelu dystrybucji aplikacji konsoli Firebase przez 150 dni. Gdy kompilacja minie 30 dni od wygaśnięcia, w konsoli i 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, otrzymają zaproszenia e-mail, aby rozpocząć. Istniejący testerzy otrzymują powiadomienia e-mail, że nowa kompilacja jest gotowa do testowania. Aby dowiedzieć się, jak zainstalować aplikację testową, zapoznaj się z przewodnikiem konfiguracji testera . 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 App Distribution, możesz użyć działania firebase_app_distribution_get_latest_release i na przykład wtyczki fastlane increment_version_code . Poniższy kod przedstawia 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 działaniu 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 swojej wersji aplikacji za pomocą pliku Fastfile lub bezpośrednio uruchamiając akcje Fastlane. Uruchamianie akcji bezpośrednio nadpisuje wartości ustawione w twoim 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 wydań w projekcie, ale mogą zachować dostęp do wydań przez pewien czas.

Użyj Fastfile

# Use lanes to add or remove testers from an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

Uruchom akcje Fastlane

fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

Możesz również określić testerów za pomocą --file="/path/to/testers.txt zamiast --emails .

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

  • project_name : numer Twojego projektu Firebase.
  • service_credentials_file : ścieżka do pliku danych logowania 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óre są używane w akcji przesyłania.

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

Możesz użyć działania firebase_app_distribution_get_latest_release , aby pobrać informacje o najnowszej wersji swojej aplikacji w App Distribution, w tym informacje o wersji aplikacji, informacje o wersji i czas utworzenia. Przypadki użycia obejmują automatyczne zwiększanie wersji i przenoszenie informacji o wydaniu z poprzedniego wydania.

Zwracaną wartością akcji jest hash 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 o polach dostępnych w tym hashu można znaleźć w dokumentacji interfejsu API REST .

Parametry

parametry firebase_app_distribution_get_latest_release
app

Wymagane : identyfikator Firebase aplikacji 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, który jest drukowany po uruchomieniu akcji logowania wtyczki (zobacz Uwierzytelnianie przy użyciu konta Google powyżej) lub podczas uwierzytelniania środowiska CI za pomocą interfejsu Firebase CLI (więcej informacji znajdziesz w artykule Używanie interfejsu CLI z systemami CI ).

service_credentials_file

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

debug

Flaga logiczna. Możesz ustawić to na true aby wydrukować pełne dane wyjściowe debugowania.