Pilot (Fastlane) — to narzędzie do zarządzania kompilacjami aplikacji iOS w TestFlight: przesyłanie plików binarnych, zarządzanie grupami testerów i śledzenie statusów buildów. W przeciwieństwie do ręcznego przesyłania przez App Store Connect, Pilot automatyzuje wszystkie operacje za pomocą TestFlight API. Według oficjalnej dokumentacji Fastlane (2026), Pilot pozwala zespołom skrócić czas publikacji wersji beta z 10 minut do kilku sekund.
Najważniejsze
Pilot (Fastlane) — to komponent ekosystemu Fastlane do automatyzacji pracy z TestFlight — platformą Apple do testów beta aplikacji mobilnych. Pilot przejmuje wszystkie rutynowe operacje: przesyłanie buildów, dodawanie testerów, zarządzanie grupami i śledzenie statusu kompilacji.
Bez Pilot proces dystrybucji wersji beta wygląda następująco: programista ręcznie otwiera App Store Connect, wybiera aplikację, przesyła IPA przez Xcode Organizer, konfiguruje grupę testerów i wysyła zaproszenia. TestFlight — to usługa Apple do dystrybucji wersji beta aplikacji wśród testerów przed oficjalną premierą w App Store.
Według App Store Connect Help (2025), zewnętrzni testerzy muszą przejść proces Beta App Review przed pierwszą instalacją kompilacji — zajmuje to od 1 do 48 godzin. Pilot automatycznie śledzi status recenzji i powiadamia zespół o gotowości kompilacji do dystrybucji wśród zewnętrznych grup testerów.
Używaj Pilot w każdym projekcie, który wymaga regularnego dostarczania kompilacji beta testerom — to standardowe narzędzie w pipeline CI/CD aplikacji iOS, zapewniające przewidywalny proces dostarczania.
Funkcjonalność Pilot obejmuje pełny cykl życia zarządzania kompilacjami beta: od przesłania pliku binarnego do powiadomienia testerów o nowej wersji. Każda funkcja zaimplementowana jest jako osobne polecenie z przewidywalnym zachowaniem i szczegółowym logowaniem każdego kroku.
Polecenie fastlane pilot upload przesyła plik IPA do App Store Connect i tworzy nową kompilację w TestFlight. Pilot automatycznie sprawdza poprawność pliku binarnego, zgodność wersji i identyfikatora aplikacji. App Store Connect — to platforma Apple do zarządzania aplikacjami, w tym przesyłania buildów, metadanych, analityki i raportów sprzedaży.
Po przesłaniu Pilot oczekuje na przetworzenie pliku binarnego po stronie Apple — proces trwa od 5 do 30 minut w zależności od rozmiaru kompilacji. W trakcie oczekiwania Pilot wyświetla pasek postępu z informacją o bieżącym statusie przetwarzania: Processing, Validating lub Ready. Po pomyślnym przetworzeniu kompilacja staje się dostępna do przypisania grupom testerów.
Pilot obsługuje zarządzanie zarówno wewnętrznymi, jak i zewnętrznymi grupami testerów. Wewnętrzni testerzy — to członkowie Twojego zespołu Apple Developer, którzy uzyskują dostęp do kompilacji natychmiastowo, bez przechodzenia Beta App Review. Zewnętrzni testerzy — to użytkownicy zaproszeni przez email, którzy wymagają zatwierdzenia recenzji przed pierwszą instalacją.
Polecenie fastlane pilot add dodaje nowych testerów do grupy przez email lub Apple ID. Pilot automatycznie wysyła zaproszenia i sprawdza, czy tester przyjął zaproszenie. Do masowego dodawania można przekazać listę emaili z pliku przez parametr --testers_file_path, co jest wygodne przy początkowym zbieraniu grupy testerów liczącej setki uczestników.
# Przesyłanie nowej kompilacji do TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"
# Dodawanie testera do grupy
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
Konfiguracja Pilot nie wymaga osobnego pliku konfiguracyjnego — ustawienia przekazywane są przez Appfile (wspólny plik Fastlane) lub argumenty wiersza poleceń. Główne parametry obejmują apple_id aplikacji, app_identifier, team_id i dane uwierzytelniające do dostępu do App Store Connect API.
Do uwierzytelniania Pilot używa App Store Connect API Key (zalecany sposób) lub uwierzytelniania dwuskładnikowego Apple ID. App Store Connect API Key — to klucz dostępu generowany w App Store Connect, który umożliwia interakcję z API bez interaktywnego wprowadzania hasła i kodu potwierdzającego.
# Appfile — ogólna konfiguracja Fastlane
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Zmienne środowiskowe dla Pilot
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
Parametr app_identifier określa Bundle Identifier aplikacji, który musi być zgodny z identyfikatorem podanym w projekcie Xcode i App Store Connect. Parametr apple_id służy do uwierzytelniania w schemacie dwuskładnikowym, a team_id — do wyboru zespołu programistycznego, jeśli konto jest powiązane z wieloma zespołami Apple Developer.
Do pracy Pilot należy skonfigurować App Store Connect API Key w środowisku CI/CD. Klucz generowany jest w App Store Connect → Users and Access → Keys → Generate API Key. Zapisz plik .p8 w sekretach systemu CI i wskaż ścieżkę do niego przez zmienną środowiskową APP_STORE_CONNECT_API_KEY_PATH lub parametr --api_key_path w poleceniach Pilot.
Zestaw poleceń Pilot pokrywa wszystkie scenariusze pracy z TestFlight: przesyłanie kompilacji, zarządzanie testerami, przeglądanie statusów i śledzenie metadanych. Każde polecenie zwraca ustrukturyzowany wynik JSON do dalszego przetwarzania w skryptach CI/CD.
Polecenie fastlane pilot builds wyświetla listę wszystkich kompilacji aplikacji z podaniem wersji, statusu przetwarzania i daty przesłania. Status kompilacji może przyjąć jedną z wartości: Processing — Apple przetwarza plik binarny, Ready — kompilacja dostępna do dystrybucji, Rejected — kompilacja odrzucona z powodu błędów walidacji.
# Wyświetlanie listy wszystkich kompilacji w TestFlight
fastlane pilot builds
# Przypisywanie kompilacji do grupy testerów
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# Wyświetlanie informacji o konkretnej kompilacji
fastlane pilot build_info --build_number 42
Polecenie fastlane pilot distribute przypisuje kompilację do wskazanych grup testerów i wysyła powiadomienia. Parametr --notify włącza wysyłanie powiadomień email do testerów o nowej dostępnej kompilacji — jest to kluczowe dla zaangażowania beta-testerów w proces testowania i przyspieszenia informacji zwrotnej.
Do zarządzania metadanymi kompilacji używany jest parametr --changelog, który określa tekst opisu zmian w nowej wersji. Ten tekst wyświetlany jest testerom w zaproszeniu do testowania w aplikacji TestFlight. Zaleca się podawanie kluczowych zmian, naprawionych błędów i nowych funkcji w każdej kompilacji.
| Polecenie Pilot | Przeznaczenie | Kluczowe parametry |
|---|---|---|
| pilot upload | Przesyłanie IPA do TestFlight | --ipa, --skip_waiting |
| pilot distribute | Przypisywanie kompilacji do grup | --build_number, --groups |
| pilot add | Dodawanie testerów | --email, --groups |
| pilot builds | Lista wszystkich kompilacji | --app_identifier |
| pilot build_info | Informacje o kompilacji | --build_number |
Pilot w CI/CD — to końcowy etap pipeline dostarczania aplikacji iOS. Po tym jak Gym zbudował IPA, a testy zostały zaliczone, Pilot przesyła kompilację do TestFlight i dystrybuuje ją do grup testerów. Pozwala to zespołom QA otrzymywać nową wersję aplikacji w kilka minut po commicie w repozytorium.
Typowy pipeline iOS CI/CD obejmuje sekwencję: Match (certyfikaty), Gym (budowa IPA), Pilot (przesłanie do TestFlight i dystrybucja). Każdy etap zależy od poprzedniego, co gwarantuje dostarczanie tylko ważnych i podpisanych kompilacji do testerów.
# Pełny pipeline w Fastfile
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
Parametr skip_waiting w poleceniu upload pozwala nie czekać na zakończenie przetwarzania pliku binarnego przez Apple w ramach zadania CI — Pilot wysyła żądanie przesłania, otrzymuje identyfikator kompilacji i kończy działanie. Przyspiesza to pipeline, ponieważ przetwarzanie może trwać do 30 minut, które nie są tracone na oczekiwanie w runnerze CI.
Do poprawnej pracy Pilot w CI należy skonfigurować klucz API App Store Connect. Zapisz plik klucza .p8 w bezpiecznym magazynie systemu CI i przekaż ścieżkę przez zmienną środowiskową APP_STORE_CONNECT_API_KEY_PATH. Pilot używa tego klucza do uwierzytelniania w API bez uwierzytelniania dwuskładnikowego, co jest kluczowe dla automatycznych scenariuszy.
Podczas korzystania z Pilot programiści najczęściej napotykają błędy uwierzytelniania, nieprawidłową konfigurację aplikacji i problemy z przetwarzaniem plików binarnych po stronie Apple. Diagnostyka problemów Pilot zaczyna się od sprawdzenia statusu kompilacji w App Store Connect za pomocą polecenia pilot builds.
Błąd «Your app is not available for testing in TestFlight» występuje, gdy aplikacja nie jest skonfigurowana do testowania w App Store Connect. Rozwiązanie: otwórz sekcję TestFlight w App Store Connect, aktywuj testowanie dla aplikacji i upewnij się, że Export Compliance jest wypełnione poprawnie dla Twojego typu szyfrowania.
Błąd «Missing iOS Distribution signing identity» wskazuje na brak certyfikatu dystrybucyjnego w Keychain. Rozwiązanie: uruchom Match, aby pobrać odpowiedni certyfikat przed wywołaniem Pilot. Certyfikat dystrybucyjny różni się od Development — służy do podpisywania kompilacji przeznaczonych do dystrybucji przez TestFlight lub App Store.
Przy błędzie «Invalid Provisioning Profile» kompilacja zawiera nieprawidłowy profil dla wybranej metody eksportu. Rozwiązanie: sprawdź, czy Gym używa prawidłowego export_method, odpowiadającego typowi profilu w Match. Jeśli kompilacja została zbudowana z profilem deweloperskim, Pilot nie będzie mógł przesłać jej do TestFlight — wymagany jest profil app-store lub ad-hoc.
Często zadawane pytania
Pilot obsługuje dwa typy: wewnętrzni testerzy (Internal Testers) — członkowie zespołu Apple Developer, uzyskujący dostęp natychmiastowo, oraz zewnętrzni testerzy (External Testers) — użytkownicy zaproszeni przez email, którzy wymagają przejścia Beta App Review przed instalacją.
TestFlight wymaga unikalnego numeru kompilacji dla każdego przesłania. Pilot automatycznie sprawdza duplikaty i odrzuca przesyłanie kompilacji z numerem, który już istnieje w App Store Connect. Dla nowego przesłania zwiększ build number w projekcie Xcode przed kompilacją.
Nie, Pilot jest komponentem Fastlane i nie instaluje się osobno. Możesz jednak wywoływać tylko Pilot bez innych narzędzi Fastlane. W tym celu zainstaluj Fastlane przez gem install fastlane i używaj tylko poleceń pilot, ignorując match i gym.
Użyj polecenia fastlane pilot reject z podaniem numeru kompilacji. Pilot wyłącza dostęp testerów do wskazanej kompilacji, ale nie usuwa jej z App Store Connect. Odrzucona kompilacja pozostaje w historii TestFlight ze statusem Rejected do audytu wydań.
Użyj parametru --notify w poleceniu pilot distribute. Pilot wysyła powiadomienia email do wszystkich testerów w wskazanych grupach z linkiem do instalacji nowej wersji przez TestFlight. Bez tej flagi testerzy zobaczą nową kompilację dopiero po otwarciu aplikacji TestFlight.
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ż