Pilot (Fastlane) — este un instrument pentru gestionarea build-urilor aplicațiilor iOS în TestFlight: încărcarea fișierelor binare, gestionarea grupurilor de testeri și urmărirea statusurilor build-urilor. Spre deosebire de încărcarea manuală prin App Store Connect, Pilot automatizează toate operațiunile cu TestFlight API. Conform documentației oficiale Fastlane (2026), Pilot permite echipelor să reducă timpul de publicare a versiunii beta de la 10 minute la câteva secunde.
Principalele
Pilot (Fastlane) — este o componentă a ecosistemului Fastlane pentru automatizarea lucrului cu TestFlight — platforma Apple pentru testarea beta a aplicațiilor mobile. Pilot preia toate operațiunile de rutină: încărcarea build-urilor, adăugarea testerilor, gestionarea grupurilor și urmărirea statusului build-urilor.
Fără Pilot, procesul de distribuire a versiunii beta arată astfel: dezvoltatorul deschide manual App Store Connect, selectează aplicația, încarcă IPA prin Xcode Organizer, configurează grupul de testeri și trimite invitații. TestFlight — este serviciul Apple pentru distribuirea versiunilor beta ale aplicațiilor între testeri înainte de lansarea oficială în App Store.
Conform App Store Connect Help (2025), testerii externi trebuie să treacă prin procesul Beta App Review înainte de prima instalare a build-ului — aceasta durează între 1 și 48 de ore. Pilot urmărește automat statusul revizuirii și notifică echipa când build-ul este gata pentru distribuirea către grupurile externe de testeri.
Utilizați Pilot în orice proiect care necesită livrarea regulată a build-urilor beta către testeri — este instrumentul standard pentru pipeline-urile CI/CD ale aplicațiilor iOS, asigurând un proces de livrare previzibil.
Funcționalitatea Pilot acoperă ciclul complet de viață al gestionării build-urilor beta: de la încărcarea fișierului binar până la notificarea testerilor despre noua versiune. Fiecare funcție este implementată ca o comandă separată cu comportament previzibil și logare detaliată a fiecărui pas.
Comanda fastlane pilot upload încarcă fișierul IPA în App Store Connect și creează un nou build în TestFlight. Pilot verifică automat validitatea fișierului binar, corespondența versiunii și a identificatorului aplicației. App Store Connect — este platforma Apple pentru gestionarea aplicațiilor, inclusiv încărcarea build-urilor, metadatelor, analiticii și rapoartelor de vânzări.
După încărcare, Pilot așteaptă procesarea fișierului binar de către Apple — procesul durează între 5 și 30 de minute în funcție de dimensiunea build-ului. În timpul așteptării, Pilot afișează o bară de progres cu informații despre statusul curent al procesării: Processing, Validating sau Ready. După procesarea cu succes, build-ul devine disponibil pentru atribuirea către grupurile de testeri.
Pilot suportă gestionarea atât a grupurilor interne, cât și externe de testeri. Testerii interni — sunt membri ai echipei Apple Developer, care obțin acces la build-uri instantaneu, fără a trece prin Beta App Review. Testerii externi — sunt utilizatori invitați prin email, care necesită aprobarea revizuirii înainte de prima instalare.
Comanda fastlane pilot add adaugă noi testeri în grup prin email sau Apple ID. Pilot trimite automat invitațiile și verifică dacă testerul a acceptat invitația. Pentru adăugarea în masă, puteți transmite lista de email-uri dintr-un fișier prin parametrul --testers_file_path, ceea ce este convenabil la constituirea inițială a unui grup de testeri cu sute de participanți.
# Încărcarea unui nou build în TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"
# Adăugarea unui tester în grup
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
Configurarea Pilot nu necesită un fișier de configurare separat — setările se transmit prin Appfile (fișierul comun Fastlane) sau argumente ale liniei de comandă. Parametrii principali includ apple_id al aplicației, app_identifier, team_id și datele de autentificare pentru accesul la App Store Connect API.
Pentru autentificare, Pilot utilizează App Store Connect API Key (metoda recomandată) sau autentificarea cu doi factori Apple ID. App Store Connect API Key — este o cheie de acces generată în App Store Connect care permite interacțiunea cu API-ul fără introducerea interactivă a parolei și a codului de confirmare.
# Appfile — configurația generală Fastlane
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Variabile de mediu pentru Pilot
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
Parametrul app_identifier determină Bundle Identifier al aplicației, care trebuie să coincidă cu identificatorul specificat în proiectul Xcode și în App Store Connect. Parametrul apple_id este utilizat pentru autentificare în schema cu doi factori, iar team_id — pentru selectarea echipei de dezvoltare, dacă contul este legat de mai multe echipe Apple Developer.
Pentru funcționarea Pilot este necesară configurarea App Store Connect API Key în mediul CI/CD. Cheia se generează în App Store Connect → Users and Access → Keys → Generate API Key. Salvați fișierul .p8 în secretele sistemului CI și indicați calea către acesta prin variabila de mediu APP_STORE_CONNECT_API_KEY_PATH sau parametrul --api_key_path în comenzile Pilot.
Setul de comenzi Pilot acoperă toate scenariile de lucru cu TestFlight: încărcarea build-urilor, gestionarea testerilor, vizualizarea statusurilor și urmărirea metadatelor. Fiecare comandă returnează un rezultat JSON structurat pentru procesarea ulterioară în scripturile CI/CD.
Comanda fastlane pilot builds afișează lista tuturor build-urilor aplicației cu indicarea versiunii, statusului de procesare și datei de încărcare. Statusul build-ului poate fi unul dintre: Processing — Apple procesează fișierul binar, Ready — build-ul este disponibil pentru distribuire, Rejected — build-ul a fost respins din cauza erorilor de validare.
# Vizualizarea listei tuturor build-urilor în TestFlight
fastlane pilot builds
# Atribuirea build-ului unui grup de testeri
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# Vizualizarea informațiilor despre un build specific
fastlane pilot build_info --build_number 42
Comanda fastlane pilot distribute atribuie build-ul grupurilor specificate de testeri și trimite notificări. Parametrul --notify activează trimiterea de notificări prin email testerilor despre noul build disponibil — acest lucru este esențial pentru implicarea testerilor beta în procesul de testare și pentru accelerarea feedback-ului.
Pentru gestionarea metadatelor build-ului se utilizează parametrul --changelog, care stabilește textul descrierii modificărilor din noua versiune. Acest text este afișat testerilor în invitația de testare din aplicația TestFlight. Se recomandă indicarea modificărilor cheie, a bug-urilor reparate și a noilor funcții în fiecare build.
| Comanda Pilot | Destinație | Parametri cheie |
|---|---|---|
| pilot upload | Încărcarea IPA în TestFlight | --ipa, --skip_waiting |
| pilot distribute | Atribuirea build-ului grupurilor | --build_number, --groups |
| pilot add | Adăugarea testerilor | --email, --groups |
| pilot builds | Lista tuturor build-urilor | --app_identifier |
| pilot build_info | Informații despre build | --build_number |
Pilot în CI/CD — este etapa finală a pipeline-ului de livrare a aplicației iOS. După ce Gym a construit IPA-ul, iar testele au fost trecute, Pilot încarcă build-ul în TestFlight și îl distribuie către grupurile de testeri. Acest lucru permite echipelor QA să primească noua versiune a aplicației la câteva minute după comiterea în repository.
Un pipeline tipic iOS CI/CD include secvența: Match (certificate), Gym (construirea IPA), Pilot (încărcarea în TestFlight și distribuirea). Fiecare etapă depinde de precedenta, ceea ce garantează livrarea doar a build-urilor valide și semnate către testeri.
# Pipeline complet în Fastfile
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
Parametrul skip_waiting în comanda upload permite să nu se aștepte finalizarea procesării fișierului binar de către Apple în cadrul sarcinii CI — Pilot trimite cererea de încărcare, primește identificatorul build-ului și își încheie activitatea. Acest lucru accelerează pipeline-ul, deoarece procesarea poate dura până la 30 de minute, care nu sunt pierdute în așteptarea în runner-ul CI.
Pentru funcționarea corectă a Pilot în CI este necesară configurarea cheii API App Store Connect. Salvați fișierul cheii .p8 în depozitul securizat al sistemului CI și transmiteți calea prin variabila de mediu APP_STORE_CONNECT_API_KEY_PATH. Pilot utilizează această cheie pentru autentificarea în API fără autentificare cu doi factori, ceea ce este esențial pentru scenariile automate.
La utilizarea Pilot, dezvoltatorii întâlnesc cel mai frecvent erori de autentificare, configurație incorectă a aplicației și probleme cu procesarea fișierelor binare de către Apple. Diagnosticarea problemelor Pilot începe cu verificarea statusului build-ului în App Store Connect prin comanda pilot builds.
Eroarea «Your app is not available for testing in TestFlight» apare atunci când aplicația nu este configurată pentru testare în App Store Connect. Soluție: deschideți secțiunea TestFlight în App Store Connect, activați testarea pentru aplicație și asigurați-vă că Export Compliance este completat corect pentru tipul dvs. de criptare.
Eroarea «Missing iOS Distribution signing identity» indică absența certificatului Distribution în Keychain. Soluție: rulați Match pentru încărcarea certificatului corect înainte de apelarea Pilot. Certificatul Distribution diferă de Development — este utilizat pentru semnarea build-urilor destinate distribuirii prin TestFlight sau App Store.
La eroarea «Invalid Provisioning Profile», build-ul conține un profil incorect pentru metoda de export selectată. Soluție: verificați că Gym utilizează export_method corect, corespunzător tipului de profil din Match. Dacă build-ul a fost construit cu un profil de dezvoltare, Pilot nu va putea să-l încarce în TestFlight — este necesar un profil app-store sau ad-hoc.
Întrebări frecvente
Pilot suportă două tipuri: testeri interni (Internal Testers) — membri ai echipei Apple Developer, care obțin acces instantaneu, și testeri externi (External Testers) — utilizatori invitați prin email, care necesită trecerea Beta App Review înainte de instalare.
TestFlight necesită un număr unic de build pentru fiecare încărcare. Pilot verifică automat duplicatele și respinge încărcarea build-ului cu un număr care există deja în App Store Connect. Pentru o nouă încărcare, măriți build number în proiectul Xcode înainte de construire.
Nu, Pilot este o componentă a Fastlane și nu se instalează separat. Cu toate acestea, puteți apela doar Pilot fără alte instrumente Fastlane. Pentru aceasta, instalați Fastlane prin gem install fastlane și utilizați doar comenzile pilot, ignorând match și gym.
Utilizați comanda fastlane pilot reject cu specificarea numărului build-ului. Pilot dezactivează accesul testerilor la build-ul specificat, dar nu îl șterge din App Store Connect. Build-ul respins rămâne în istoricul TestFlight cu statusul Rejected pentru auditul lansărilor.
Utilizați parametrul --notify în comanda pilot distribute. Pilot trimite notificări prin email tuturor testerilor din grupurile specificate cu linkul de instalare a noii versiuni prin TestFlight. Fără acest parametru, testerii vor vedea noul build doar la deschiderea aplicației TestFlight.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și