W tym dokumencie przedstawiamy sprawdzone metody korzystania z Firebase App Distribution i fastlane, aby przepływy pracy związane z testowaniem wersji przedpremierowych na platformie Apple były zrównoważone i powtarzalne w środowisku CI/CD. W tym dokumencie skupiamy się na fastlane, ale opisujemy też rozwiązania dostępne w Firebasekonsoli, FirebaseCLI i publicznym interfejsie API Firebase App Distribution, aby zapewnić Ci większą elastyczność. Opisujemy też limity dotyczące wersji i testerów, aby umożliwić Ci wcześniejsze zaplanowanie optymalnych wrażeń.
Jeśli używasz też Androida, zapoznaj się z tym artykułem: Sprawdzone metody dystrybucji aplikacji na Androida do testerów QA za pomocą CI/CD.
Zanim zaczniesz
Zanim wdrożysz sprawdzone metody opisane w tym dokumencie, włącz App Distribution w Firebase konsoli dla każdej aplikacji. Jeśli nie włączysz App Distribution, pojawi się błąd 404.
Aby włączyć App Distribution, wykonaj te czynności:
Otwórz App Distribution stronę w konsoli Firebase.
Wybierz aplikację na iOS.
Kliknij Rozpocznij.
Automatyzowanie przepływu pracy związanego z testowaniem wersji przedpremierowych za pomocą CI/CD
Jeśli chcesz zautomatyzować tworzenie i udostępnianie aplikacji testerom oraz korzystasz z CI/CD, zalecamy użycie fastlane. Możesz też użyć Firebasewiersza poleceń, który umożliwia dostęp do wielu usług Firebase.
Używanie narzędzia 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. Automatyczne tworzenie i dystrybuowanie najnowszych wersji do testerów sprawia, że zawsze mają oni najbardziej aktualną 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 ćwiczeniami z programowania, które poprowadzą Cię przez proces integracji fastlane.
Korzystanie z interfejsu wiersza poleceń Firebase
Użyj narzędzi interfejsu wiersza poleceń, które udostępnia App Distribution, aby automatycznie rozpowszechniać wersje wśród testerów. Możesz określić testerów i informacje o wersji.Firebase
Dystrybuuj najnowszą kompilację iOStest.ipa, podając identyfikator aplikacji w Firebase, opcjonalnie dodając notatkę 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 automatyzowaniu kompilacji za pomocą interfejsu wiersza poleceń Firebase znajdziesz w artykule Dystrybuowanie aplikacji na iOS do testerów za pomocą interfejsu wiersza poleceń Firebase.
Uwierzytelnianie za pomocą danych logowania usługi
Używaj App Distribution wtyczki fastlane lub Firebase interfejsu wiersza poleceń z kontami usługi, które korzystają z domyślnego uwierzytelniania aplikacji i pomagają zarządzać CI. Konto usługi to rodzaj konta Google, które reprezentuje aplikacje, a nie użytkowników. System CI może używać kont usług do uruchamiania zadań App Distribution. Więcej informacji znajdziesz w artykule Uwierzytelnianie za pomocą konta usługi.
Jeśli korzystasz z federacji tożsamości zadań, zamiast klucza konta usługi możesz wygenerować i użyć pliku konfiguracji danych logowania.
Pamiętaj o limitach publikacji
App Distribution obsługuje maksymalnie 1000 wersji na aplikację. Oznacza to, że po przekroczeniu limitu wersji App Distribution automatycznie usuwa najstarsze wersje powyżej limitu. Aby dowiedzieć się, jak zarządzać limitami wersji, przeczytaj artykuł Jak długo dostępne są wersje aplikacji?
Dodawanie tego samego zestawu testerów do wielu wersji
Jeśli chcesz dodać do wersji dużą liczbę testerów, skorzystaj z funkcji zarządzania testerami w App Distribution.
Zalecamy używanie grup do dodawania tych samych testerów do wielu wersji. 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 Firebase CLI, fastlane lub publicznego interfejsu API Firebase App Distribution.
Pamiętaj o limitach testerów
App Distribution ogranicza liczbę testerów, których możesz dodać do projektu w Firebase lub App Distribution grupy. Po przekroczeniu tych limitów nie będziesz mieć możliwości udostępniania aplikacji kolejnym testerom. Więcej informacji o limitach testerów znajdziesz w artykule Czy istnieją limity dodawania testerów do aplikacji?
Zarządzanie nowymi urządzeniami testowymi z iOS i automatyczne dodawanie ich
Aby ułatwić Ci rejestrowanie dodatkowych urządzeń testowych z iOS, App Distribution pomaga zarządzać urządzeniami testowymi z iOS w portalu Apple Developer Portal, informując Cię o nowych urządzeniach testowych z iOS za pomocą e-maili lub plików CSV. Więcej informacji znajdziesz w artykule Importowanie testerów z plików CSV. Możesz też programowo eksportować nowe urządzenia za pomocą narzędzia fastlane.
Aby dowiedzieć się, jak skonfigurować działanie fastlane, które automatycznie pobiera identyfikatory UDID, dodaje je do konsoli dewelopera Apple, a następnie ponownie kompiluje aplikację i ją rozpowszechnia, przeczytaj artykuł Szybsze rozpowszechnianie przedpremierowych kompilacji na iOS dzięki App Distribution i trybowi fastlane.
Umożliwianie potencjalnym testerom samodzielnego rejestrowania się w celu testowania
Aby ułatwić sobie udostępnianie aplikacji większej liczbie testerów, zalecamy używanie linków z zaproszeniem. Link z zaproszeniem to unikalny adres URL, który umożliwia testerom wpisanie adresów e-mail w celu zarejestrowania się do testowania aplikacji. Umożliwienie użytkownikom dodawania się do listy testerów aplikacji to prosty sposób na zwiększenie bazy testerów wewnętrznych.
Linki z zaproszeniem są używane m.in. w programach testowania wewnętrznego w firmach, organizacjach z dużymi zespołami ds. kontroli jakości i grupach deweloperów, które chcą, aby poszczególni klienci mogli kontrolować dostęp testerów.
Zalecamy utworzenie linku z zaproszeniem do 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 i Dodawanie i usuwanie testerów z grupy.
Upewnij się, że testerzy testują wersję, na której Ci zależy
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. Dzięki temu będziesz mieć pewność, że testerzy testują konkretną wersję aplikacji, na której Ci zależy:
Linki do wersji: używaj tej funkcji, gdy chcesz udostępnić testerom konkretną wersję. Aby dowiedzieć się, jak korzystać z linków do wersji, przeczytaj artykuł Dystrybuowanie aplikacji na iOS do testerów za pomocą konsoli Firebase. Te linki są też dostępne w naszych narzędziach wiersza poleceń (CLI) Firebase i fastlane, których możesz używać z narzędziami do automatyzacji kompilacji.
Alerty w aplikacji: używaj tych alertów, gdy chcesz mieć pewność, że testerzy testują najnowszą wersję aplikacji. Integrując pakiet App DistributioniOS SDK FirebaseApp Distribution, możesz wyświetlać testerom alerty bezpośrednio w aplikacji, gdy dostępne są nowe kompilacje. Aby dowiedzieć się, jak dodawać alerty w aplikacji, przeczytaj artykuł Powiadamianie testerów o nowych wersjach.
Automatyczne usuwanie dostępu testerom, którzy opuszczają firmę
Gdy wewnętrzny proces testowania CI/CD będzie już działać, musisz zadbać o to, aby osoby, które opuściły firmę, nie miały już dostępu do wewnętrznych wersji. Aby ułatwić zarządzanie dostępem testerów do wersji, App Distributionudostępnia te opcje:
fastlane: użyj pliku Fastfile lub bezpośrednio uruchom działania fastlane. Więcej informacji o usuwaniu testerów za pomocą trybu fastlane znajdziesz w artykule Udostępnianie aplikacji na iOS testerom za pomocą trybu fastlane.
Publiczny interfejs App Distribution Firebase API: użyj punktu końcowego
testers.batchRemove.