W tym dokumencie znajdziesz sprawdzone metody korzystania z Firebase App Distribution i fastlane, które pozwolą Ci uczynić przepływy pracy związane z testowaniem przed wydaniem na platformie Apple trwałymi i powtarzalnymi w środowisku CI/CD. Chociaż ten dokument koncentruje się na fastlane, opisujemy w nim też rozwiązania dostępne w konsoli Firebase, interfejsie wiersza poleceń Firebase i publicznym interfejsie API App Distribution Firebase, aby zapewnić Ci większą elastyczność. Opisujemy też limity wersji i testerów, aby umożliwić Ci optymalne planowanie.
Jeśli używasz też Androida, zapoznaj się z sprawdzonymi metodami dystrybucji aplikacji na Androida do testowania jakości za pomocą CI/CD.
Zanim zaczniesz
Zanim zaczniesz stosować sprawdzone metody opisane w tym dokumencie, włącz App Distribution w konsoli Firebase w przypadku każdej aplikacji. Jeśli nie włączysz opcji App Distribution, pojawi się błąd 404.
Aby włączyć App Distribution, wykonaj te czynności:
Otwórz stronę App Distribution w konsoli Firebase.
Wybierz aplikację na iOS.
Kliknij Rozpocznij.
Automatyzowanie procesu testowania przedpremierowego za pomocą CI/CD
Jeśli chcesz zautomatyzować kompilowanie i publikowanie aplikacji dla testerów i korzystasz z CI/CD, zalecamy użycie fastlane. Inną opcją jest użycie wiersza poleceń Firebase, który umożliwia dostęp do szerokiej gamy usług Firebase.
Używanie fastlane
Zintegruj App Distribution z potokiem CI/CD za pomocą fastlane – narzędzia open source, które automatyzuje tworzenie i publikowanie aplikacji na iOS i Androida. Dzięki automatycznemu kompilowaniu i rozpowszechnianiu najnowszych wersji aplikacji do testów masz pewność, że testerzy zawsze będą mieli najnowszą wersję testową aplikacji.
Aby dowiedzieć się, jak zintegrować App Distribution z fastlane, przeczytaj artykuł Udostępnianie aplikacji na iOS testerom za pomocą fastlane. Zapoznaj się też z ćwiczeniem z programowania, które poprowadzi Cię przez proces szybkiej integracji.
Użyj interfejsu wiersza poleceń Firebase.
Aby rozpowszechniać kompilacje wśród testerów za pomocą programów, użyj narzędzi wiersza poleceń Firebase udostępnianych przez App Distribution. Możesz określić testerów i notatki do wersji.
Udostępnij najnowszą wersję na iOS test.ipa
, podając identyfikator aplikacji Firebase, opcjonalnie dodając informacje o wersji i plik zawierający adresy e-mail testerów:
firebase appdistribution:distribute test.ipa \ --app 1:1234567890:ios:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txt
Więcej informacji o automatyzacji kompilacji za pomocą interfejsu wiersza poleceń Firebase znajdziesz w artykule Rozpowszechnianie aplikacji na iOS wśród testerów za pomocą interfejsu wiersza poleceń Firebase.
Uwierzytelnianie przy użyciu danych logowania do usługi
Użyj App Distribution wtyczki fastlane lub interfejsu wiersza poleceń Firebase z kontami usługi, które korzystają z domyślnych danych logowania aplikacji i pomagają w zarządzaniu CI. Konto usługi to rodzaj konta Google, które reprezentuje aplikacje, a nie użytkowników. Twój system CI może używać kont usług do wykonywania zadań App Distribution. Więcej informacji znajdziesz w artykule Uwierzytelnianie za pomocą konta usługi.
Jeśli używasz federacji tożsamości zadań, zamiast klucza konta usługi możesz wygenerować i użyć pliku konfiguracji danych logowania.
Pamiętaj o limitach dotyczących publikowania
App Distribution obsługuje maksymalnie 1000 wersji na aplikację. Oznacza to, że gdy przekroczysz limit wersji, App Distribution automatycznie usunie najstarsze wersje, które przekroczyły limit. Aby dowiedzieć się, jak zarządzać limitami wersji, przeczytaj artykuł Jak długo wersje aplikacji są dostępne?.
Dodaj tę samą grupę testerów do wielu wersji
Jeśli chcesz dodać do wersji dużą liczbę testerów, użyj funkcji zbiorczego zarządzania testerami w App Distribution.
Zalecamy dodawanie tych samych testerów do wielu wersji za pomocą grup. Grupa działa jak lista kontroli dostępu. Gdy usuniesz testera z grupy, straci on dostęp do wszystkich wersji rozpowszechnianych w tej grupie. Więcej informacji znajdziesz w artykule Dodawanie i usuwanie testerów z grupy.
Jeśli masz wielu testerów, możesz dodawać i usuwać ich zbiorczo w konsoli Firebase. Aby zautomatyzować dodawanie i usuwanie testerów, użyj FirebaseCLI, fastlane lub publicznego interfejsu API App DistributionFirebase.
Pamiętaj o limitach testerów
Ustawienie App Distribution ogranicza liczbę testerów, których możesz dodać do projektu Firebase lub grupy App Distribution. Po przekroczeniu tych limitów nie będzie można rozpowszechniać aplikacji wśród dodatkowych testerów. Więcej informacji o limitach dotyczących testerów znajdziesz w artykule Czy istnieją limity dotyczące dodawania testerów do aplikacji?
Zarządzanie nowymi urządzeniami testera z iOS i ich automatyczne dodawanie
Aby pomóc Ci zarejestrować dodatkowe urządzenia testerów iOS, App Distribution pomaga Ci zarządzać urządzeniami do testowania iOS w Apple Developer Portal, informując Cię o nowych urządzeniach z iOS w e-mailach lub plikach CSV. Więcej informacji znajdziesz w artykule Importowanie testujących z plików CSV. Możesz też programowo eksportować nowe urządzenia za pomocą fastlane.
Aby dowiedzieć się, jak skonfigurować działanie fastlane, które automatycznie pobiera identyfikatory UDID, dodaje je do konsoli dewelopera Apple, a potem ponownie tworzy aplikację i rozpowszechnia ją, przeczytaj artykuł Szybkie rozpowszechnianie wersji iOS przed oficjalnym wydaniem za pomocą App Distribution i fastlane.
Umożliwienie potencjalnym testerom samodzielnego rejestrowania się na testy
Aby ułatwić rozpowszechnianie aplikacji większej liczbie testerów, zalecamy używanie linków do zaproszenia. Link z zaproszeniem to unikalny adres URL, który umożliwia testerom wpisanie adresów e-mail w celu zarejestrowania się w aplikacji. Umożliwienie użytkownikom dodawania siebie do listy testerów aplikacji to prosty sposób na zwiększenie liczby testerów wewnętrznych.
Linki do zaproszenia można stosować w przypadku programów testowania wewnątrz firmy, organizacji z dużymi zespołami ds. jakości oraz grup programistów, które chcą, aby poszczególni klienci mogli kontrolować dostęp testerów.
Zalecamy utworzenie linku z zaproszeniem dla grupy. Każdy tester, który zarejestruje się za pomocą linku z zaproszeniem, zostanie automatycznie dodany do kolejnych wersji.
Więcej informacji znajdziesz w artykułach Tworzenie linków z zaproszeniem oraz Dodawanie testerów do grupy i usuwanie ich z grupy.
Upewnij się, że testerzy testują wersję, która Cię interesuje
Gdy prześlesz nową wersję, testerzy otrzymają e-maila z powiadomieniem. Jako uzupełnienie tego powiadomienia możesz użyć tych funkcji – linków do wersji i alertów w aplikacji – by mieć pewność, że testerzy testują konkretną wersję aplikacji, na której Ci zależy:
Linki do wersji: użyj tej funkcji, gdy chcesz udostępnić testerom konkretną wersję. Więcej informacji o korzystaniu z linków do wersji znajdziesz w artykule Udostępnianie aplikacji na iOS testerom za pomocą konsoli Firebase. Te linki są też dostępne w narzędziach wiersza poleceń (CLI) Firebase i fastlane do stosowania z narzędziami automatyzacji kompilacji.
Alerty w aplikacji: używaj tych alertów, aby mieć pewność, że testerzy testują najnowszą wersję aplikacji. Dzięki integracji pakietu SDK Firebase App Distribution na iOS możesz wyświetlać alerty bezpośrednio w aplikacji testowanym osobom, gdy będą dostępne nowe wersje aplikacji. Aby dowiedzieć się, jak dodawać alerty w aplikacji, przeczytaj artykuł Powiadomienie testerów o nowych wersjach aplikacji.
Automatycznie usuwaj dostęp testerów, którzy opuszczają firmę
Po uruchomieniu wewnętrznego procesu testów CI/CD musisz zadbać o to, aby osoby, które opuszczają firmę, nie miały już dostępu do jej wewnętrznych kompilacji. Aby ułatwić zarządzanie dostępem testerów do wersji, App Distributionoferuje te opcje:
fastlane: użyj pliku Fastfile lub bezpośrednio wykonaj akcje fastlane. Więcej informacji o usuwaniu testerów przy użyciu Fastlane znajdziesz w artykule Rozpowszechnianie aplikacji na iOS testerom za pomocą fastlane.
Publiczne API Firebase App Distribution: Użyj punktu końcowego
testers.batchRemove
.