W tym dokumencie znajdziesz sprawdzone metody korzystania z Firebase App Distribution i fastlane, aby usprawnić i usystematyzować przepływy pracy związane z testowaniem przed wydaniem na platformie Apple 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 przez testerów QA za pomocą CI/CD.
Zanim zaczniesz
Zanim zastosujesz sprawdzone metody opisane w tym dokumencie, włącz App Distribution w konsoli Firebase dla każdej aplikacji. Jeśli nie włączysz opcji App Distribution, otrzymasz 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, czyli narzędzia open source, które automatyzuje kompilowanie 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.
Używanie danych uwierzytelniających 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?.
Dodawanie tego samego zestawu 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 z grupy testera, 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 za pomocą konsoli Firebase. Aby zautomatyzować dodawanie i usuwanie testerów, użyj wiersza poleceń Firebase, fastlane lub publicznego interfejsu API App Distribution Firebase.
Pamiętaj o ograniczeniach dotyczących testerów
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 testowania znajdziesz w artykule Czy istnieją limity dotyczące dodawania testujących do aplikacji?
Zarządzanie nowymi urządzeniami testera z iOS i ich automatyczne dodawanie
Aby ułatwić rejestrowanie dodatkowych urządzeń testowych z iOS, usługa App Distribution pomaga zarządzać urządzeniami testowymi z iOS na portalu Apple Developer, wysyłając e-maile lub pliki CSV z informacjami o nowych urządzeniach. 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 zaproszenia. Link do zaproszenia to unikalny adres URL, który pozwala testerom wpisać adresy e-mail, aby zarejestrować się do testowania aplikacji. Umożliwienie użytkownikom dodawania się do listy testerów aplikacji to wygodny sposób na zwiększenie wewnętrznej bazy testów.
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 artykule o tworzeniu linków z zaproszeniem i dodawaniu i usuwaniu testerów z grupy.
Upewnij się, że testerzy testują wersję, która Cię interesuje
Gdy prześlesz nową wersję, testerzy otrzymają e-maila z powiadomieniem. Aby uzupełnić to powiadomienie, możesz użyć tych funkcji – linków do wersji i alertów w aplikacji – aby mieć pewność, że testerzy będą testować konkretną wersję aplikacji, która Cię interesuje:
Linki do wersji: użyj tej funkcji, aby 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.
Automatyczne usuwanie dostępu testerów, którzy opuszczają firmę
Gdy proces testowania wewnętrznego CI/CD będzie już działać, musisz zadbać o to, aby osoby, które opuszczą firmę, nie miały już dostępu do 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. Aby dowiedzieć się więcej o usuwaniu testerów za pomocą fastlane, przeczytaj artykuł Udostępnianie aplikacji na iOS testerom za pomocą fastlane.
Publiczne API Firebase App Distribution: Użyj punktu końcowego
testers.batchRemove
.