Pilot (Fastlane): кључни појмови, TestFlight и управљање билдовима за мобилне пројекте

Аутор: IT Sectr Објављено: 2026-04-14 Време читања: 9 мин

Pilot (Fastlane) — је алат за управљање билдовима iOS апликација у TestFlight-у: отпремање бинарних датотека, управљање групама тестера и праћење статуса билдова. За разлику од ручног отпремања преко App Store Connect-а, Pilot аутоматизује све операције са TestFlight API-јем. Према званичној документацији Fastlane (2026), Pilot омогућава тимовима да смање време објављивања бета верзије са 10 минута на неколико секунди.

Главно

  • Pilot — Fastlane алатка за аутоматско отпремање iOS билдова у TestFlight и управљање бета тестирањем.
  • Алат подржава отпремање бинарних датотека, управљање групама тестера и праћење статуса билдова преко App Store Connect API-ја.
  • Pilot омогућава расподелу билдова по групама: интерни тестери добијају билдове тренутно, екстерни — након проласка Beta App Review-а.
  • Подешавање Pilot-а се врши преко датотеке Appfile или параметара командне линије, укључујући apple_id, app_identifier и team_id.
  • Интеграција са CI/CD омогућава аутоматско отпремање новог билда у TestFlight након успешног проласка Gym-а и скупа тестова.

Шта је Pilot (Fastlane)?

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-а за TestFlight

Функционалност Pilot-а покрива комплетан животни циклус управљања бета билдовима: од отпремања бинарне датотеке до обавештавања тестера о новој верзији. Свака функција је имплементирана као посебна команда са предвидљивим понашањем и детаљним логовањем сваког корака.

Отпремање билдова у TestFlight

Команда 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, што је згодно приликом почетног прикупљања групе тестера од стотинак учесника.

bash
# Отпремање новог билда у TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"

# Додавање тестера у групу
fastlane pilot add --email "tester@company.com" \
      --groups "QA Team"

Подешавање и конфигурација Pilot-а

Конфигурација 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-јем без интерактивног уноса лозинке и кода за потврду.

ruby
# 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-а за управљање билдовима

Скуп команди Pilot-а покрива све сценарије рада са TestFlight-ом: отпремање билдова, управљање тестерима, преглед статуса и праћење метаподатака. Свака команда враћа структурирани JSON излаз за даљу обраду у CI/CD скриптама.

Преглед статуса билдова

Команда fastlane pilot builds приказује листу свих билдова апликације са назнаком верзије, статуса обраде и датума отпремања. Статус билда може бити један од: Processing — Apple обрађује бинарну датотеку, Ready — билд је доступан за дистрибуцију, Rejected — билд је одбијен због грешака у валидацији.

bash
# Преглед листе свих билдова у 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 пајплајн

Pilot у CI/CD — је финална фаза пајплајна испоруке iOS апликације. Након што је Gym саставио IPA, а тестови су положени, Pilot отпрема билд у TestFlight и распоређује га по групама тестера. Ово омогућава QA тимовима да добију нову верзију апликације неколико минута након комита у репозиторијум.

Типичан iOS CI/CD пајплајн укључује секвенцу: Match (сертификати), Gym (састављање IPA), Pilot (отпремање у TestFlight и дистрибуција). Свака фаза зависи од претходне, што гарантује испоруку само валидних и потписаних билдова тестерима.

bash
# Комплетан пајплајн у 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-ом

При коришћењу 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?

Pilot подржава два типа: интерни тестери (Internal Testers) — чланови Apple Developer тима, који добијају приступ тренутно, и екстерни тестери (External Testers) — корисници позвани путем е-поште, којима је потребно пролажење Beta App Review-а пре инсталације.

Како Pilot обрађује билдове са истим бројем верзије?

TestFlight захтева јединствени број билда за свако отпремање. Pilot аутоматски проверава дупликате и одбија отпремање билда са бројем који већ постоји у App Store Connect-у. За ново отпремање повећајте build number у Xcode пројекту пре састављања.

Може ли се користити Pilot без Fastlane-а?

Не, Pilot је компонента Fastlane-а и не инсталира се одвојено. Међутим, можете позивати само Pilot без других Fastlane алата. За то инсталирајте Fastlane преко gem install fastlane и користите само pilot команде, игноришући match и gym.

Како отказати дистрибуцију билда путем Pilot-а?

Користите команду fastlane pilot reject са навођењем броја билда. Pilot онемогућава приступ тестера наведеном билду, али га не брише из App Store Connect-а. Одбијени билд остаје у историји TestFlight-а са статусом Rejected за ревизију издања.

Како подесити обавештења тестерима при новом билду?

Користите параметар --notify у команди pilot distribute. Pilot шаље е-поште обавештења свим тестерима у наведеним групама са линком за инсталацију нове верзије путем TestFlight-а. Без ове заставице, тестери ће видети нови билд тек при отварању TestFlight апликације.

Закључак

  • Pilot — Fastlane алат за управљање iOS билдовима у TestFlight-у: отпремање бинарних датотека, управљање групама тестера и праћење статуса.
  • Основне команде: upload за отпремање IPA, distribute за додељивање билдова групама и builds за преглед статуса свих билдова.
  • Pilot подржава два типа тестера: интерне (тренутни приступ) и екстерне (захтевају Beta App Review пре инсталације).
  • Аутентификација се врши преко App Store Connect API Key-ја, који се подешава у тајнама CI система за аутоматски рад без интерактивног уноса.
  • Интеграција у CI/CD омогућава аутоматско отпремање нових билдова у TestFlight након састављања путем Gym-а и проласка свих тестова.
  • Типичне грешке Pilot-а су везане за недостатак Distribution сертификата, неисправан тип профила или неактивиран TestFlight у App Store Connect-у.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође