Pilot (Fastlane) — är ett verktyg för att hantera byggen av iOS-appar i TestFlight: uppladdning av binära filer, hantering av testargrupper och spårning av byggstatus. Till skillnad från manuell uppladdning via App Store Connect automatiserar Pilot alla operationer med TestFlight API. Enligt officiella Fastlane-dokumentationen (2026) gör Pilot det möjligt för team att minska publiceringstiden för betaversioner från 10 minuter till några sekunder.
Huvudpunkter
Pilot (Fastlane) — är en komponent i Fastlane-ekosystemet för att automatisera arbetet med TestFlight — Apples plattform för betatestning av mobilappar. Pilot tar över alla rutinoperationer: uppladdning av byggen, tillägg av testare, hantering av grupper och spårning av byggstatus.
Utan Pilot ser distributionsprocessen för betaversion ut så här: utvecklaren öppnar manuellt App Store Connect, väljer appen, laddar upp IPA via Xcode Organizer, konfigurerar en testargrupp och skickar inbjudningar. TestFlight — är Apples tjänst för distribution av betaversioner av appar bland testare före den officiella lanseringen i App Store.
Enligt App Store Connect Help (2025) måste externa testare genomgå Beta App Review-processen före den första installationen av ett bygge — detta tar 1 till 48 timmar. Pilot spårar automatiskt granskningsstatusen och meddelar teamet när bygget är redo för distribution till externa testargrupper.
Använd Pilot i alla projekt som kräver regelbunden leverans av betabyggen till testare — det är standardverktyget för CI/CD-pipelines för iOS-appar som säkerställer en förutsägbar leveransprocess.
Pilots funktionalitet täcker hela livscykeln för hantering av betabyggen: från uppladdning av den binära filen till meddelande till testare om en ny version. Varje funktion är implementerad som ett separat kommando med förutsägbart beteende och detaljerad loggning av varje steg.
Kommandot fastlane pilot upload laddar upp IPA-filen till App Store Connect och skapar ett nytt bygge i TestFlight. Pilot kontrollerar automatiskt den binära filens giltighet, versionsöverensstämmelse och appidentifiering. App Store Connect — är Apples plattform för apphantering, inklusive uppladdning av byggen, metadata, analys och försäljningsrapporter.
Efter uppladdning väntar Pilot på bearbetning av den binära filen av Apple — processen tar 5 till 30 minuter beroende på byggets storlek. Under väntan visar Pilot en förloppsindikator med information om aktuell bearbetningsstatus: Processing, Validating eller Ready. Efter framgångsrik bearbetning blir bygget tillgängligt för tilldelning till testargrupper.
Pilot stöder hantering av både interna och externa testargrupper. Interna testare — är medlemmar i ditt Apple Developer-team som får tillgång till byggen omedelbart, utan att genomgå Beta App Review. Externa testare — är användare som bjudits in via e-post och som behöver godkännande av granskning före den första installationen.
Kommandot fastlane pilot add lägger till nya testare i en grupp via e-post eller Apple ID. Pilot skickar automatiskt inbjudningar och kontrollerar om testaren har accepterat inbjudan. För massinläggning kan du överföra en lista med e-postmeddelanden från en fil via parametern --testers_file_path, vilket är praktiskt vid initial sammansättning av en testargrupp med hundratals deltagare.
# Ladda upp nytt bygge till TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"
# Lägga till testare i grupp
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
Konfiguration av Pilot kräver ingen separat konfigurationsfil — inställningar överförs via Appfile (delad Fastlane-fil) eller kommandoradsargument. Huvudparametrarna inkluderar appens apple_id, app_identifier, team_id och autentiseringsuppgifter för åtkomst till App Store Connect API.
För autentisering använder Pilot App Store Connect API Key (rekommenderad metod) eller Apple ID tvåfaktorsautentisering. App Store Connect API Key — är en åtkomstnyckel som genereras i App Store Connect och möjliggör interaktion med API utan interaktiv inmatning av lösenord och bekräftelsekod.
# Appfile — allmän Fastlane-konfiguration
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Miljövariabler för Pilot
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
Parametern app_identifier bestämmer appens Bundle Identifier, som måste matcha identifieraren som anges i Xcode-projektet och App Store Connect. Parametern apple_id används för autentisering i tvåfaktorsschemat och team_id — för val av utvecklingsteam om kontot är kopplat till flera Apple Developer-team.
För att Pilot ska fungera måste App Store Connect API Key konfigureras i CI/CD-miljön. Nyckeln genereras i App Store Connect → Users and Access → Keys → Generate API Key. Spara .p8-filen i CI-systemets hemligheter och ange sökvägen till den via miljövariabeln APP_STORE_CONNECT_API_KEY_PATH eller parametern --api_key_path i Pilot-kommandon.
Pilots kommandouppsättning täcker alla scenarier för arbete med TestFlight: uppladdning av byggen, hantering av testare, visning av status och spårning av metadata. Varje kommando returnerar strukturerad JSON-utdata för vidare bearbetning i CI/CD-skript.
Kommandot fastlane pilot builds visar en lista över alla byggen av appen med version, bearbetningsstatus och uppladdningsdatum. Byggstatus kan vara en av: Processing — Apple bearbetar den binära filen, Ready — bygget är tillgängligt för distribution, Rejected — bygget har avvisats på grund av valideringsfel.
# Visa lista över alla byggen i TestFlight
fastlane pilot builds
# Tilldela bygge till testargrupp
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# Visa information om specifikt bygge
fastlane pilot build_info --build_number 42
Kommandot fastlane pilot distribute tilldelar bygget till angivna testargrupper och skickar aviseringar. Parametern --notify aktiverar sändning av e-postmeddelanden till testare om ett nytt tillgängligt bygge — detta är avgörande för att engagera betatestare i testprocessen och påskynda återkoppling.
För hantering av byggmetadata används parametern --changelog, som anger texten för beskrivning av ändringar i den nya versionen. Denna text visas för testare i testinbjudan i TestFlight-appen. Det rekommenderas att ange viktiga ändringar, korrigerade buggar och nya funktioner i varje bygge.
| Pilot-kommando | Syfte | Nyckelparametrar |
|---|---|---|
| pilot upload | Uppladdning av IPA till TestFlight | --ipa, --skip_waiting |
| pilot distribute | Tilldelning av bygge till grupper | --build_number, --groups |
| pilot add | Lägga till testare | --email, --groups |
| pilot builds | Lista över alla byggen | --app_identifier |
| pilot build_info | Information om bygge | --build_number |
Pilot i CI/CD — är det sista steget i leveranspipelinen för iOS-appen. Efter att Gym har byggt IPA och testerna har godkänts laddar Pilot upp bygget till TestFlight och distribuerar det till testargrupper. Detta gör att QA-team kan få den nya versionen av appen några minuter efter commit i repositoryt.
En typisk iOS CI/CD-pipeline inkluderar sekvensen: Match (certifikat), Gym (bygga IPA), Pilot (uppladdning till TestFlight och distribution). Varje steg är beroende av det föregående, vilket garanterar leverans av endast giltiga och signerade byggen till testare.
# Full pipeline i Fastfile
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
Parametern skip_waiting i kommandot upload gör det möjligt att inte vänta på slutförandet av bearbetningen av den binära filen av Apple inom CI-uppgiften — Pilot skickar en uppladdningsbegäran, får byggets identifierare och avslutar sitt arbete. Detta påskyndar pipelinen eftersom bearbetningen kan ta upp till 30 minuter som inte förloras på väntan i CI-runner.
För korrekt funktion av Pilot i CI måste App Store Connect API-nyckeln konfigureras. Spara .p8-nyckelfilen i CI-systemets säkra lagring och överför sökvägen via miljövariabeln APP_STORE_CONNECT_API_KEY_PATH. Pilot använder denna nyckel för autentisering i API utan tvåfaktorsautentisering, vilket är avgörande för automatiska scenarier.
Vid användning av Pilot stöter utvecklare oftast på autentiseringsfel, felaktig appkonfiguration och problem med bearbetning av binära filer av Apple. Problemdiagnostik av Pilot börjar med att kontrollera byggstatusen i App Store Connect via kommandot pilot builds.
Felet «Your app is not available for testing in TestFlight» uppstår när appen inte är konfigurerad för testning i App Store Connect. Lösning: öppna TestFlight-sektionen i App Store Connect, aktivera testning för appen och säkerställ att Export Compliance är korrekt ifylld för din krypteringstyp.
Felet «Missing iOS Distribution signing identity» indikerar att Distribution-certifikat saknas i Keychain. Lösning: kör Match för att ladda rätt certifikat innan du anropar Pilot. Distribution-certifikat skiljer sig från Development — det används för att signera byggen avsedda för distribution via TestFlight eller App Store.
Vid felet «Invalid Provisioning Profile» innehåller bygget en felaktig profil för den valda exportmetoden. Lösning: kontrollera att Gym använder rätt export_method som motsvarar profiltypen i Match. Om bygget byggdes med en utvecklingsprofil kan Pilot inte ladda upp det till TestFlight — en app-store eller ad-hoc-profil krävs.
Vanliga frågor
Pilot stöder två typer: interna testare (Internal Testers) — medlemmar i Apple Developer-teamet som får omedelbar åtkomst, och externa testare (External Testers) — användare som bjudits in via e-post och som måste genomgå Beta App Review före installation.
TestFlight kräver ett unikt byggnummer för varje uppladdning. Pilot kontrollerar automatiskt efter dubbletter och avvisar uppladdning av ett bygge med ett nummer som redan finns i App Store Connect. För en ny uppladdning, öka build number i Xcode-projektet före bygget.
Nej, Pilot är en komponent i Fastlane och installeras inte separat. Du kan dock anropa endast Pilot utan andra Fastlane-verktyg. För detta, installera Fastlane via gem install fastlane och använd endast pilot-kommandon, ignorera match och gym.
Använd kommandot fastlane pilot reject med angivande av byggnumret. Pilot inaktiverar testares åtkomst till det angivna bygget men tar inte bort det från App Store Connect. Det avvisade bygget finns kvar i TestFlight-historiken med status Rejected för granskning av utgåvor.
Använd parametern --notify i kommandot pilot distribute. Pilot skickar e-postmeddelanden till alla testare i angivna grupper med en länk för att installera den nya versionen via TestFlight. Utan denna flagga ser testare det nya bygget först när de öppnar TestFlight-appen.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också