Rozpowszechnianie aplikacji na iOS testerom przy użyciu fastlane

Kompilacje możesz rozpowszechniać wśród testerów za pomocą fastlane, czyli platformy open source, która automatyzuje tworzenie i publikowanie aplikacji na iOS i Androida. Wykonuje on proste instrukcje zdefiniowane w Fastfile. Po skonfigurowaniu szybka linia i Fastfile, możesz zintegrować aplikację App Distribution ze swoją szybką linią konfiguracji.

Krok 1. Skonfiguruj szybki pas

  1. Zainstaluj i skonfiguruj fastlane

  2. Aby dodać interfejs App Distribution do konfiguracji szybkiej pasa, uruchom następujące polecenie z poziomu głównego projektu na iOS:

    fastlane add_plugin firebase_app_distribution

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

Krok 2. Uwierzytelnij za pomocą Firebase

Aby móc korzystać z wtyczki fastlane, musisz najpierw uwierzytelnić się w projekcie Firebase w jeden z podanych niżej sposobów. Domyślnie wtyczka fastlane szuka danych logowania z interfejsu wiersza poleceń Firebase, jeśli nie ma żadnego innego uwierzytelniania .

Krok 3. Konfigurowanie 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 tylko wtedy, gdy aplikacja nie zawiera pliku konfiguracyjnego Firebase (GoogleService-Info.plist): identyfikator aplikacji Firebase. Ty identyfikator aplikacji można znaleźć w konsoli Firebase, na stronie Strona Ustawienia ogólne.

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    Ścieżka do pliku GoogleService-Info.plist podana względem ścieżki zarchiwizowanego produktu. Domyślna wartość to GoogleService-Info.plist.

    Plik służy do uzyskiwania identyfikatora aplikacji Firebase, jeśli parametr app nie jest określony.

    firebase_cli_token

    Token odświeżania, który jest drukowany podczas uwierzytelniania środowiska CI za pomocą Firebase CLI (odczyt) Używanie interfejsu wiersza poleceń z systemami CI ).

    service_credentials_file

    Ścieżka do pliku JSON konta usługi Google. Aby dowiedzieć się, jak uwierzytelnić się przy użyciu danych logowania konta usługi, zapoznaj się z informacjami powyżej.

    ipa_path

    Zastępuje apk_path (wycofany). Ścieżka bezwzględna do plik IPA, który chcesz przesłać. Jeśli nie jest określony, fastlane określa lokalizację pliku na podstawie kanału, w 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 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 wskazać jako listę adresów e-mail rozdzielonych przecinkami:

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

    Możesz też podać ścieżkę do 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ądzaj testerami). Grupy określa się przy użyciu aliasów grup, których możesz używać możesz znaleźć w konsoli Firebase.

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

    groups: "qa-team, trusted-testers"

    Możesz też podać ścieżkę do zwykłego pliku tekstowego zawierającego rozdzielana przecinkami lista nazw grup:

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

    Te typy dystrybucji są częścią funkcji testowania automatycznego w wersji beta.

    Urządzenia testowe, na które chcesz rozpowszechnić kompilacje (patrz Automatyczne testy).

    Urządzenia testowe możesz określić jako listę urządzeń testowych rozdzieloną ś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 listę urządzeń testowych rozdzielonych średnikami:

    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, które będzie używane podczas testów zautomatyzowanych.

    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 dla pola nazwy użytkownika do automatycznego logowania, które ma być używane podczas testów zautomatyzowanych.

    test_password_resource

    Nazwa zasobu dla pola hasła do automatycznego logowania, które ma być używane podczas testów zautomatyzowanych.

    test_non_blocking

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

    debug

    Flaga wartości logicznej. Aby wydrukować obszerne dane debugowania, możesz ustawić tę wartość na true.

Przykład:

platform :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        release = firebase_app_distribution(
            app: "1:123456789:ios:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )

    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 dostępnych polach w tym haśle znajdziesz w dokumentacji interfejsu API REST.

Wtyczka fastlane generuje poniższe linki po przesłaniu wersji. Te linki pomogą Ci zarządzać plikami binarnymi i zadbać o to, aby testerzy i inni deweloperzy mieli odpowiednią wersję:

  • Link do konsoli Firebase z wyświetloną premiery singla. Możesz udostępnić ten link innym deweloperom na swoim org.
  • link do wersji w interfejsie testów (klipy internetowe na iOS), który umożliwia testerom wyświetlanie informacji o wersji i instalowanie aplikacji na urządzeniu; Tester potrzebuje dostępu do wersji, aby jej używać kliknij link.
  • Podpisany link, który umożliwia bezpośrednie pobieranie instaluje plik binarny aplikacji (plik IPA). Link wygasa po 1 godzinie.

Rozpowszechniana kompilacja jest dostępna w Panel App Distribution konsoli Firebase przez 150 dni. Jeśli upłynie 30 dni od wygaśnięcia kompilacji, w oraz na liście kompilacji na urządzeniu testowym.

Testerzy, którzy nie zostali wcześniej zaproszeni do testowania aplikacji, otrzymają e-maile zaproszenia do rozpoczęcia pracy. Dotychczasowi testerzy otrzymują e-maile z powiadomieniami, że nowa wersja jest gotowa do testowania. Aby dowiedzieć się, jak zainstalować test Więcej informacji znajdziesz w artykule na temat konfigurowania aplikacji jako tester. W konsoli Firebase możesz sprawdzać stan każdego testera, aby dowiedzieć się, czy zaakceptował on zaproszenie i czy pobrał aplikację.

(Opcjonalnie) Aby automatycznie zwiększać numer kompilacji przy każdym jej tworzeniu nową wersję w Rozpowszechnianiu aplikacji, możesz użyć funkcji działanie firebase_app_distribution_get_latest_release i increment_build_number działanie. Poniższy kod pokazuje, jak automatycznie zwiększać numer kompilacji:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end

Więcej informacji o tej funkcji wtyczki fastlane 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ą: Fastfile lub bezpośrednio przez uruchomienie szybkich pasów ruchu. Wykonywanie działań bezpośrednio zastępuje wartości ustawione w Fastfile.

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

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

Użyj konta 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

Wykonywanie działań 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"

Zamiast --emails możesz też użyć operatora --file="/path/to/testers.txt.

firebase_app_distribution_add_testers i firebase_app_distribution_remove_testers zadań akceptuje też te ustawienia argumenty:

  • project_name: numer projektu Firebase.
  • group_alias (opcjonalnie): jeśli ta opcja jest zaznaczona, testerzy zostaną dodani do określonej grupy (lub z niej usunięci).
  • service_credentials_file: ścieżka do pliku danych logowania do usług Google.
  • firebase_cli_token: token uwierzytelniania dla interfejsu wiersza poleceń Firebase.

Elementy service_credentials_file i firebase_cli_token są takie same argumentów używanych przez działanie przesyłania.

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

Możesz użyć akcji firebase_app_distribution_get_latest_release, aby pobrać informacje o najnowszej wersji aplikacji w sekcji Dystrybucja aplikacji, w tym informacje o wersji aplikacji, informacje o wersji i czas utworzenia. Zastosowania m.in. automatyczne zwiększanie wersji i przenoszenie wersji uwagi z poprzedniej wersji.

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

Parametry

Parametry firebase_app_distribution_get_latest_release
app

Wymagany tylko wtedy, gdy aplikacja nie zawiera pliku konfiguracji Firebase (GoogleService-Info.plist): identyfikator aplikacji Firebase Twojej aplikacji. Ty może go znaleźć w konsoli Firebase, na stronie Strona Ustawienia ogólne.

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

Ścieżka do pliku GoogleService-Info.plist podana względem ścieżki zarchiwizowanego produktu. Domyślnie jest ono ustawione na GoogleService-Info.plist.

Plik ten służy do uzyskania identyfikatora aplikacji Firebase, jeśli parametr app nie jest określony.

firebase_cli_token

Token odświeżania, który jest drukowany podczas uwierzytelniania środowiska CI za pomocą Firebase CLI (odczyt) Używanie interfejsu wiersza poleceń z systemami CI ).

service_credentials_file

Ścieżka do pliku JSON konta usługi Google. Aby dowiedzieć się, jak uwierzytelnić się przy użyciu danych logowania konta usługi, zapoznaj się z wcześniejszą dokumentacją.

service_credentials_json_data

Zawartość pliku JSON konta usługi Google. Aby dowiedzieć się, jak to zrobić, zapoznaj się z wcześniejszą dokumentacją do uwierzytelniania z użyciem danych logowania konta usługi.

debug

Flaga wartości logicznej. Aby wydrukować obszerne dane debugowania, możesz ustawić tę wartość na true.

Dalsze kroki