TestFlight — oficjalna platforma Apple do dystrybucji przedpremierowych buildów aplikacji wśród testerów. Pozwala programistom przesyłać wersje beta do App Store Connect, zarządzać dostępem i zbierać opinie przed publikacją. Według Apple Developer Documentation, TestFlight obsługuje do 10 000 zewnętrznych testerów przez publiczny link i do 100 wewnętrznych — przez Apple ID.
Najważniejsze
TestFlight — platforma testów beta zintegrowana z App Store Connect, służąca do dystrybucji przedpremierowych buildów aplikacji przed publikacją w App Store. Programiści przesyłają buildy zarchiwizowane przez Xcode i dystrybuują je wśród testerów bez konieczności ręcznego rozpowszechniania plików IPA.
Apple przejęło TestFlight w 2014 roku w celu zastąpienia dystrybucji Ad Hoc przez Provisioning Profiles. Wcześniej programiści zbierali UDID urządzeń, tworzyli provisioning profile i dystrybuowali IPA przez zewnętrzne usługi. TestFlight zautomatyzował cały proces: tester instaluje aplikację beta przez TestFlight App, a programista zarządza dostępem przez interfejs webowy.
Według WWDC 2024, TestFlight obsługuje ponad 2 miliony testowych instalacji miesięcznie. Platforma wspiera dystrybucję na wszystkie platformy Apple, w tym iOS, iPadOS, macOS, tvOS, watchOS i visionOS, co czyni ją jedynym ujednoliconym narzędziem testów beta w ekosystemie Apple.
TestFlight dzieli testowanie na dwa typy: Internal Testing dla członków zespołu (do 100 uczestników, build dostępny od razu po przesłaniu) i External Testing dla zewnętrznych użytkowników (do 10 000 uczestników, wymagana weryfikacja Beta App Review). Testy wewnętrzne nie wymagają moderacji, co czyni je idealnymi do szybkiej weryfikacji buildów w zespole.
External Testing pozwala zapraszać testerów przez email lub publiczny link. Po przejściu Beta App Review build jest dostępny do pobrania dla wszystkich zaproszonych. W przypadku aplikacji publikowanych po raz pierwszy, External Testing jest obowiązkowy zgodnie z zasadami App Store Review Guidelines.
Proces pracy TestFlight rozpoczyna się od archiwizacji aplikacji w Xcode i przesłania do App Store Connect przez Organizer lub Transporter. Po przesłaniu build przechodzi automatyczną weryfikację poprawności i skanowanie bezpieczeństwa.
Wewnętrzni testerzy otrzymują powiadomienie o dostępnym buildzie przez TestFlight App. Mogą zainstalować aplikację i zostawiać opinie przez wbudowany interfejs zrzutów ekranu i komentarzy tekstowych. W przypadku testerów zewnętrznych wymagane jest zatwierdzenie Beta App Review, po którym build jest dystrybuowany tak samo jak wewnętrzny.
TestFlight automatycznie zbiera metryki użytkowania: liczbę instalacji, logi awarii, zrzuty ekranu z adnotacjami i opinie. Programista widzi te dane w sekcji TestFlight w App Store Connect. Wszystkie dane są agregowane według wersji buildów, co ułatwia porównanie stabilności różnych wersji.
Każdy przesłany do TestFlight build ma okres ważności 90 dni. Po upływie terminu testerzy nie mogą już zainstalować ani uruchomić aplikacji. Aby kontynuować testowanie, należy przesłać nowy build z podwyższonym numerem wersji. Ograniczenie motywuje programistów do regularnego aktualizowania buildów.
W miarę zbliżania się daty wygaśnięcia TestFlight wysyła powiadomienia do programisty i testerów. Jeśli nowy build nie zostanie przesłany na czas, testowanie zostaje przerwane, a uczestnicy tracą dostęp do aplikacji do czasu pojawienia się świeżej wersji.
Konfiguracja TestFlight rozpoczyna się w App Store Connect w sekcji TestFlight. Do uruchomienia wymagany jest co najmniej jeden przesłany build aplikacji. Interfejs jest podzielony na trzy główne sekcje: buildy, wewnętrzni testerzy i grupy zewnętrzne.
Wewnętrzni testerzy są dodawani przez Apple ID. Każdy uczestnik musi być zaproszony przez App Store Connect z rolą obejmującą dostęp do testowania. Po zaproszeniu tester otrzymuje email i może zainstalować aplikację przez TestFlight App na urządzeniu.
Do testów zewnętrznych tworzone są grupy łączące testerów według scenariuszy. Każda grupa jest przypisana do konkretnych buildów. Grupa może mieć publiczny link do samodzielnego dołączenia — jest to wygodne w przypadku projektów open-source lub masowych testów beta. Według Apple Developer Documentation, publiczny link może zostać cofnięty w dowolnym momencie bez utraty dostępu dla już dołączonych testerów.
Przesyłanie builda do TestFlight odbywa się przez Xcode Organizer po archiwizacji projektu. Do przesłania wymagane jest konto w programie Apple Developer Program z uprawnieniami Admin lub App Manager w App Store Connect.
Przed przesłaniem build musi być podpisany prawidłowym Distribution Certificate i zawierać Provisioning Profile z dystrybucją App Store. Xcode automatycznie konfiguruje podpis przez Automatic Signing przy aktywnym koncie programisty.
# Prześlij przez xcrun altool (Xcode 15+ używa notarytool)
xcrun notarytool submit MyApp.ipa --apple-id "developer@example.com" --team-id "TEAMID123" --password "@keychain:AC_PASSWORD" --wait
# Prześlij bezpośrednio do App Store Connect
xcrun altool --upload-app -f MyApp.ipa -t ios -u "developer@example.com" -p "@keychain:AC_PASSWORD"
Po przesłaniu build przechodzi automatyczną weryfikację: walidację binarki, skanowanie w poszukiwaniu złośliwego kodu, sprawdzenie zgodności z App Store Review Guidelines. Zazwyczaj weryfikacja trwa od kilku minut do godziny. Status jest wyświetlany w App Store Connect w sekcji TestFlight.
Do CI/CD (GitHub Actions, Bitrise, Jenkins) używa się xcrun altool lub notarytool do przesyłania builda bezpośrednio bez Xcode. Klucze uwierzytelniania są przechowywane w Keychain lub App Store Connect API. Fastlane udostępnia akcję upload_to_testflight do pełnej automatyzacji procesu.
Zapraszanie testerów do TestFlight zależy od rodzaju testowania. Wewnętrzni testerzy są dodawani bezpośrednio w App Store Connect przez Apple ID i uzyskują dostęp do wszystkich buildów natychmiast po przesłaniu. Zewnętrzni testerzy są zapraszani przez grupy z określeniem konkretnych buildów.
Do testów zewnętrznych wymagane jest przejście Beta App Review — uproszczonej wersji App Review, sprawdzającej podstawową funkcjonalność i zgodność z zasadami. Pierwszy zewnętrzny build zazwyczaj przechodzi weryfikację w ciągu 1–2 dni, kolejne — szybciej. Po zatwierdzeniu wszyscy testerzy grupy otrzymują powiadomienie.
Publiczny link upraszcza zapraszanie: programista publikuje link na stronie lub w mediach społecznościowych, użytkownicy przechodzą przez niego i automatycznie dołączają do testów. TestFlight obsługuje do 10 000 uczestników na grupę zewnętrzną, a liczba grup jest nieograniczona. Dla każdej aplikacji można skonfigurować wiele grup z różnymi buildami.
Testerzy wysyłają opinie przez TestFlight App, dołączając zrzuty ekranu i adnotacje. Programista widzi wszystkie opinie w App Store Connect, pogrupowane według buildów. Każda opinia zawiera wersję systemu operacyjnego, model urządzenia i znacznik czasu, co ułatwia odtwarzanie i usuwanie błędów.
Publikacja aplikacji z TestFlight w App Store nie wymaga ponownego budowania. Wystarczy wybrać zatwierdzony build beta w App Store Connect i kliknąć Submit for Review. Ten sam build, który przeszedł testy beta, trafia do finalnego App Review bez rekompilacji.
Gwarantuje to, że do produkcji trafia dokładnie ta wersja, którą testowali uczestnicy, eliminując ryzyko różnic między buildem beta a release. Po przejściu finalnego App Review build jest automatycznie publikowany w App Store zgodnie z ustawionymi zasadami Availability.
Przed publikacją programista musi zaktualizować metadane: opis wersji, zrzuty ekranu dla nowej wersji systemu operacyjnego i informacje o zmianach. Buildy TestFlight, które nie zostały wysłane do App Store, są automatycznie usuwane po 90 dniach od przesłania wraz ze wszystkimi danymi testowymi.
Często zadawane pytania
Automatyczna weryfikacja zazwyczaj trwa od 5 minut do godziny. Beta App Review dla testów zewnętrznych — od kilku godzin do 2 dni. W przypadku kolejnych buildów weryfikacja przebiega szybciej, ponieważ Apple uwzględnia historię poprzednich recenzji.
TestFlight jest dostępny tylko dla uczestników Apple Developer Program (99$ rocznie). Bez subskrypcji przesłanie buildów do App Store Connect jest niemożliwe. Do dystrybucji Ad Hoc bez subskrypcji potrzebne będzie konto Enterprise lub SideStore.
Ad Hoc wymaga zbierania UDID urządzeń, tworzenia Provisioning Profile i ręcznej dystrybucji IPA. TestFlight automatyzuje cały proces: programista przesyła build, tester instaluje przez TestFlight App bez profili provisioning i UDID.
Okres życia builda w TestFlight wynosi 90 dni od momentu przesłania. Po upływie terminu testerzy nie mogą zainstalować ani uruchomić aplikacji. Aby przedłużyć testowanie, należy przesłać nowy build z podwyższonym numerem wersji.
TestFlight obsługuje aplikacje macOS począwszy od macOS 11 Big Sur. Testerzy instalują wersję beta przez TestFlight App na Macu. Proces przesyłania i zarządzania nie różni się od wersji iOS: archiwizacja w Xcode, przesyłanie przez Organizer.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również