Pilot (Fastlane) — је алат за управљање билдовима iOS апликација у TestFlight-у: отпремање бинарних датотека, управљање групама тестера и праћење статуса билдова. За разлику од ручног отпремања преко App Store Connect-а, Pilot аутоматизује све операције са TestFlight API-јем. Према званичној документацији Fastlane (2026), Pilot омогућава тимовима да смање време објављивања бета верзије са 10 минута на неколико секунди.
Главно
Pilot (Fastlane) — је компонента Fastlane екосистема за аутоматизацију рада са TestFlight-ом — Apple платформом за бета тестирање мобилних апликација. Pilot преузима све рутинске операције: отпремање билдова, додавање тестера, управљање групама и праћење статуса билдова.
Без Pilot-а, процес дистрибуције бета верзије изгледа овако: програмер ручно отвара App Store Connect, бира апликацију, отпрема IPA преко Xcode Organizer-а, подешава групу тестера и шаље позивнице. TestFlight — је Apple сервис за дистрибуцију бета верзија апликација међу тестерима пре званичног објављивања у App Store-у.
Према App Store Connect Help (2025), екстерни тестери морају да прођу процес Beta App Review пре прве инсталације билда — ово траје од 1 до 48 сати. Pilot аутоматски прати статус ревизије и обавештава тим о спремности билда за дистрибуцију међу екстерним групама тестера.
Користите Pilot у било ком пројекту где је потребна редовна испорука бета билдова тестерима — то је стандардни алат за CI/CD пајплајнове iOS апликација који обезбеђује предвидљив процес испоруке.
Функционалност Pilot-а покрива комплетан животни циклус управљања бета билдовима: од отпремања бинарне датотеке до обавештавања тестера о новој верзији. Свака функција је имплементирана као посебна команда са предвидљивим понашањем и детаљним логовањем сваког корака.
Команда fastlane pilot upload отпрема IPA датотеку у App Store Connect и креира нови билд у TestFlight-у. Pilot аутоматски проверава валидност бинарне датотеке, усклађеност верзије и идентификатора апликације. App Store Connect — је Apple платформа за управљање апликацијама, укључујући отпремање билдова, метаподатке, аналитику и извештаје о продаји.
Након отпремања, Pilot чека обраду бинарне датотеке од стране Apple-а — процес траје од 5 до 30 минута у зависности од величине билда. Током чекања, Pilot приказује траку напретка са информацијом о тренутном статусу обраде: Processing, Validating или Ready. Након успешне обраде, билд постаје доступан за додељивање групама тестера.
Pilot подржава управљање како интерним, тако и екстерним групама тестера. Интерни тестери — су чланови вашег Apple Developer тима који добијају приступ билдовима тренутно, без проласка кроз Beta App Review. Екстерни тестери — су корисници позвани путем е-поште којима је потребно одобрење ревизије пре прве инсталације.
Команда fastlane pilot add додаје нове тестере у групу путем е-поште или Apple ID-ја. Pilot аутоматски шаље позивнице и проверава да ли је тестер прихватио позив. За масовно додавање можете пренети листу е-пошта из датотеке преко параметра --testers_file_path, што је згодно приликом почетног прикупљања групе тестера од стотинак учесника.
# Отпремање новог билда у TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"
# Додавање тестера у групу
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
Конфигурација Pilot-а не захтева посебну конфигурациону датотеку — подешавања се преносе преко Appfile-а (заједничка Fastlane датотека) или аргумената командне линије. Основни параметри укључују apple_id апликације, app_identifier, team_id и акредитиве за приступ App Store Connect API-ју.
За аутентификацију, Pilot користи App Store Connect API Key (препоручени начин) или двофакторску аутентификацију Apple ID-ја. App Store Connect API Key — је кључ приступа који се генерише у App Store Connect-у и омогућава интеракцију са API-јем без интерактивног уноса лозинке и кода за потврду.
# Appfile — општа конфигурација Fastlane-а
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Променљиве окружења за Pilot
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
Параметар app_identifier одређује Bundle Identifier апликације, који мора да се поклапа са идентификатором наведеним у Xcode пројекту и App Store Connect-у. Параметар apple_id се користи за аутентификацију у двофакторској шеми, а team_id — за избор развојног тима, ако је налог повезан са више Apple Developer тимова.
За рад Pilot-а потребно је подесити App Store Connect API Key у CI/CD окружењу. Кључ се генерише у App Store Connect → Users and Access → Keys → Generate API Key. Сачувајте .p8 датотеку у тајнама CI система и наведите путању до ње преко променљиве окружења APP_STORE_CONNECT_API_KEY_PATH или параметра --api_key_path у Pilot командама.
Скуп команди Pilot-а покрива све сценарије рада са TestFlight-ом: отпремање билдова, управљање тестерима, преглед статуса и праћење метаподатака. Свака команда враћа структурирани JSON излаз за даљу обраду у CI/CD скриптама.
Команда fastlane pilot builds приказује листу свих билдова апликације са назнаком верзије, статуса обраде и датума отпремања. Статус билда може бити један од: Processing — Apple обрађује бинарну датотеку, Ready — билд је доступан за дистрибуцију, Rejected — билд је одбијен због грешака у валидацији.
# Преглед листе свих билдова у TestFlight-у
fastlane pilot builds
# Додељивање билда групи тестера
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# Преглед информација о одређеном билду
fastlane pilot build_info --build_number 42
Команда fastlane pilot distribute додељује билд наведеним групама тестера и шаље обавештења. Параметар --notify укључује слање е-поште обавештења тестерима о новом доступном билду — ово је кључно за ангажовање бета тестера у процесу тестирања и убрзавање повратних информација.
За управљање метаподацима билда користи се параметар --changelog, који поставља текст описа промена у новој верзији. Овај текст се приказује тестерима у позивници за тестирање у TestFlight апликацији. Препоручује се навођење кључних промена, исправљених грешака и нових функција у сваком билду.
| Pilot команда | Намена | Кључни параметри |
|---|---|---|
| pilot upload | Отпремање IPA у TestFlight | --ipa, --skip_waiting |
| pilot distribute | Додељивање билда групама | --build_number, --groups |
| pilot add | Додавање тестера | --email, --groups |
| pilot builds | Листа свих билдова | --app_identifier |
| pilot build_info | Информације о билду | --build_number |
Pilot у CI/CD — је финална фаза пајплајна испоруке iOS апликације. Након што је Gym саставио IPA, а тестови су положени, Pilot отпрема билд у TestFlight и распоређује га по групама тестера. Ово омогућава QA тимовима да добију нову верзију апликације неколико минута након комита у репозиторијум.
Типичан iOS CI/CD пајплајн укључује секвенцу: Match (сертификати), Gym (састављање IPA), Pilot (отпремање у TestFlight и дистрибуција). Свака фаза зависи од претходне, што гарантује испоруку само валидних и потписаних билдова тестерима.
# Комплетан пајплајн у Fastfile-у
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
Параметар skip_waiting у команди upload омогућава да се не чека завршетак обраде бинарне датотеке од стране Apple-а у оквиру CI задатка — Pilot шаље захтев за отпремање, добија идентификатор билда и завршава рад. Ово убрзава пајплајн, јер обрада може трајати до 30 минута, који се не троше на чекање у CI раннеру.
За исправан рад Pilot-а у CI-ју потребно је подесити App Store Connect API кључ. Сачувајте .p8 датотеку кључа у безбедном складишту CI система и пренесите путању преко променљиве окружења APP_STORE_CONNECT_API_KEY_PATH. Pilot користи овај кључ за аутентификацију у API-ју без двофакторске аутентификације, што је кључно за аутоматске сценарије.
При коришћењу Pilot-а, програмери се најчешће сусрећу са грешкама аутентификације, неисправном конфигурацијом апликације и проблемима са обрадом бинарних датотека од стране Apple-а. Дијагностика проблема Pilot-а почиње провером статуса билда у App Store Connect-у преко команде pilot builds.
Грешка «Your app is not available for testing in TestFlight» настаје када апликација није подешена за тестирање у App Store Connect-у. Решење: отворите одељак TestFlight у App Store Connect-у, активирајте тестирање за апликацију и уверите се да је Export Compliance исправно попуњен за ваш тип шифровања.
Грешка «Missing iOS Distribution signing identity» указује на одсуство Distribution сертификата у Keychain-у. Решење: покрените Match за учитавање исправног сертификата пре позивања Pilot-а. Distribution сертификат се разликује од Development-а — користи се за потписивање билдова намењених дистрибуцији путем TestFlight-а или App Store-а.
Код грешке «Invalid Provisioning Profile» билд садржи неисправан профил за изабрани метод извоза. Решење: проверите да Gym користи исправан export_method, који одговара типу профила у Match-у. Ако је билд састављен са development профилом, Pilot неће моћи да га отпреми у TestFlight — потребан је app-store или ad-hoc профил.
Често постављана питања
Pilot подржава два типа: интерни тестери (Internal Testers) — чланови Apple Developer тима, који добијају приступ тренутно, и екстерни тестери (External Testers) — корисници позвани путем е-поште, којима је потребно пролажење Beta App Review-а пре инсталације.
TestFlight захтева јединствени број билда за свако отпремање. Pilot аутоматски проверава дупликате и одбија отпремање билда са бројем који већ постоји у App Store Connect-у. За ново отпремање повећајте build number у Xcode пројекту пре састављања.
Не, Pilot је компонента Fastlane-а и не инсталира се одвојено. Међутим, можете позивати само Pilot без других Fastlane алата. За то инсталирајте Fastlane преко gem install fastlane и користите само pilot команде, игноришући match и gym.
Користите команду fastlane pilot reject са навођењем броја билда. Pilot онемогућава приступ тестера наведеном билду, али га не брише из App Store Connect-а. Одбијени билд остаје у историји TestFlight-а са статусом Rejected за ревизију издања.
Користите параметар --notify у команди pilot distribute. Pilot шаље е-поште обавештења свим тестерима у наведеним групама са линком за инсталацију нове верзије путем TestFlight-а. Без ове заставице, тестери ће видети нови билд тек при отварању TestFlight апликације.
Закључак
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође