TestFlight: шта је то, бета тестирање и рад са билдовима

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

TestFlight — је званична Apple услуга за бета тестирање iOS, iPadOS, watchOS и tvOS апликација. Преко TestFlight-а програмери дистрибуирају предрелизне билдове до 10 000 спољних тестера, прикупљају повратне информације и crash извештаје без потребе за објављивањем у App Store. Према Apple Developer Documentation, 2025, преко 80% апликација у App Store користи TestFlight у фази припреме издања.

Главно

  • TestFlight — Apple платформа за дистрибуцију бета верзија апликација међу тестерима
  • До 10 000 спољних тестера и до 100 унутрашњих чланова једног тима
  • Интеграција са Xcode и App Store Connect омогућава учитавање билдова директно из IDE-а
  • Аутоматско прикупљање crash логова, повратних информација и дијагностичких података од тестера
  • Без TestFlight-а дистрибуција iOS билдова ван App Store-а захтева Enterprise сертификат или jailbreak

Шта је TestFlight

TestFlight — једини званични и легални начин дистрибуције iOS апликација за тестирање без објављивања у App Store. Услуга је покренута од стране Apple-а 2014. године након куповине истоимене компаније. Пре појаве TestFlight-а, програмери су користили Ad Hoc дистрибуцију са ограничењем од 100 уређаја по сезони — TestFlight је уклонио ово ограничење и поједноставио процес на неколико кликова.

Зашто је TestFlight потребан

iOS има строгу сигурносну политику: апликација се може инсталирати на уређај само преко App Store-а или помоћу специјалних сертификата. TestFlight решава проблем бета тестирања делујући као прокси између програмера и тестера: Apple проверава билд у односу на основне захтеве, након чега тестери добијају апликацију преко TestFlight апликације из App Store-а, што не захтева поверење у непотписане датотеке.

TestFlight vs Ad Hoc vs Enterprise

Постоје три начина дистрибуције iOS апликација ван App Store-а: Ad Hoc (ограничење 100 уређаја, захтева UDID сваког уређаја), Enterprise (унутаркорпоративна дистрибуција без ограничења, захтева Apple Enterprise сертификат за 299 USD/годишње) и TestFlight (до 10 000 тестера, бесплатно, не захтева прикупљање UDID-а). TestFlight је оптималан избор за бета тестирање, Ad Hoc је погодан за тестове специфичне за уређај, Enterprise — за корпоративне апликације.

Како ради TestFlight

Процес објављивања билда преко TestFlight-а састоји се од пет корака: прављење у Xcode-у, учитавање у App Store Connect преко Archive Organizer-а, обрада од стране Apple-а, позивање тестера, инсталација апликације преко TestFlight апликације. Сваки корак траје од неколико минута до сат времена у зависности од сложености пројекта.

Apple захтеви за билд

Билд мора бити направљен са distribution сертификатом и исправним provisioning profile-ом. Apple проверава: валидност сертификата, усклађеност bundle identifier-а, одсуство приватних API-ја, исправност иконица (1024×1024) и постојање App Store иконице. Ако билд не прође проверу — TestFlight приказује грешку са описом проблема.

Процес обраде билда

Након учитавања, билд пролази кроз аутоматизовану проверу Apple-а: статичка анализа бинарног кода, провера дигиталног потписа, скенирање за коришћење приватних API-ја и малвера. Обрада траје од 15 минута до 2 сата за први билд и обично 15–30 минута за наредне. Статус обраде се приказује у Activity у App Store Connect-у.

swift
// Подешавање TestFlight-а у Swift AppDelegate-у
import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        // Провера: да ли је апликација инсталирана преко TestFlight-а
        if Bundle.main.appStoreReceiptURL?.lastPathComponent
            == "sandboxReceipt" {
            print("Beta version via TestFlight")
        }
        return true
    }
}

Унутрашњи и спољни тестери

TestFlight дели тестере у две групе: унутрашње (Internal Testers) и спољне (External Testers). Разлика је у броју учесника, приступу билдовима и потреби за Apple рецензијом. Правилан избор групе убрзава процес тестирања и поштује App Store политике.

Унутрашњи тестери (Internal)

До 100 учесника из састава Apple Developer Program тима. За позивање унутрашњег тестера довољно је додати његов Apple ID у App Store Connect — одмах добија приступ свим билдовима. Није потребна Apple рецензија. Идеално за дневно smoke тестирање и проверу функција у раним фазама.

Спољни тестери (External)

До 10 000 учесника који нису део развојног тима. Први билд за спољне тестере пролази кроз основну Apple рецензију (обично 1–2 дана). Наредни билдови са изменама које не утичу на кључну функционалност могу проћи без поновне рецензије. Спољни тестери се позивају путем е-поште или јавног линка.

ПараметарInternal TestersExternal Testers
Макс. број10010 000
Apple рецензијаНије потребнаПрви билд — обавезно
ПозивApple ID из тимаЕ-пошта / јавни линк
Рок трајања билда90 дана90 дана
Приступ билдовимаСвима одједномСамо активне групе

Како учитати билд у TestFlight

Учитавање билда у TestFlight се врши кроз Xcode, Application Loader или командну линију помоћу xcrun-а. Најчешћи начин — кроз Xcode Archive Organizer након креирања архиве пројекта. Алтернативни начин — аутоматизација кроз Fastlane за CI/CD Pipeline.

Ручно учитавање кроз Xcode

Направите архиву (Product → Archive), отворите Organizer, изаберите архиву и кликните Distribute App. Изаберите TestFlight као метод дистрибуције, наведите сертификат и provisioning profile. Xcode ће учитати билд у App Store Connect, где ће се појавити након обраде. Цео процес траје 10–20 минута за прво учитавање.

Аутоматизација кроз Fastlane

Fastlane — најпопуларнији алат за аутоматизацију учитавања билдова у TestFlight. Команда fastlane pilot учитава билд и управља тестерима без отварања Xcode-а. Интеграција Fastlane-а са CI/CD сервером омогућава аутоматско објављивање билдова у TestFlight након проласка свих тестова.

ruby
# Fastfile — учитавање билда у TestFlight
default_platform(:ios)

lane :beta do
    # Добијање сертификата путем match-а
    match(type: "appstore")

    # Прављење и потписивање
    build_app(
        scheme: "MyApp",
        export_method: "app-store",
        workspace: "MyApp.xcworkspace"
    )

    # Учитавање у TestFlight
    pilot(
        skip_waiting_for_build: true,
        distribute_external: false,
        notify_external_testers: false
    )
end

Fastlane pilot аутоматски учитава IPA у App Store Connect, чека обраду (ако је skip_waiting_for_build = false) и додељује билд изабраним групама тестера. Команда distribute_external: true одмах шаље билд спољним тестерима након обраде.

Учитавање кроз командну линију

Без Fastlane-а може се користити xcrun: xcrun altool --upload-app --file path/to/app.ipa --username YOUR_APPLE_ID --password @keychain:AC_PASSWORD. altool подржава Apple за CI окружења и не захтева графички интерфејс. Лозинка се преноси кроз keychain или app-specific password — не користите лозинке у обичном тексту.

Прикупљање повратних информација и дијагностика у TestFlight-у

TestFlight пружа неколико механизама повратних информација: уграђени образац за повратне информације, аутоматско прикупљање crash логова, метрике коришћења и снимке екрана. Тим добија све податке у App Store Connect-у без потребе за имплементацијом трећих SDK-ова за бета тестирање.

Уграђени образац за повратне информације

Тестер отвара TestFlight апликацију, бира ваш билд и кликне Send Feedback. Образац омогућава слање текстуалних повратних информација, прилог снимка екрана и означавање озбиљности. Све повратне информације се прикупљају у App Store Connect-у у секцији TestFlight → Feedback. Програмер може одговорити на повратну информацију, а тестер ће добити обавештење у TestFlight апликацији.

Crash логови и дијагностика

При паду апликације, TestFlight аутоматски прикупља crash извештај: стек позива, верзију ОС-а, модел уређаја и време пада. Crash логови су доступни у Xcode Organizer-у (Crashes) и App Store Connect-у (TestFlight → Crashes). За добијање symbolicated crash логова потребно је учитати dSYM датотеке заједно са билдом или одвојено кроз Xcode.

Праћење коришћења

TestFlight приказује метрике: број инсталација, активних тестера, сесија и крашева. Аналитика се ажурира дневно и помаже у процени ангажовања тестера. Ако за недељу дана ниједан тестер није отворио апликацију — вреди преиспитати комуникацију са групом или квалитет билда.

Од TestFlight-а до објављивања у App Store-у

TestFlight је саставни део процеса објављивања у App Store-у. Исти билд који је прошао бета тестирање кроз TestFlight може бити послат на Apple рецензију без преправљања — довољно је кликнути дугме у App Store Connect-у. То елиминише ризик да се продукциони билд разликује од тестираног.

Submit to App Review

У App Store Connect-у изаберите билд који је прошао тестирање и кликните Submit for Review. Apple користи исти билд из TestFlight-а — поновно учитавање није потребно. Време рецензије обично износи 1–3 дана. Ако је билд одбијен — исправите примедбе, учитајте нови билд у TestFlight и поновите процес.

Последњи билд пре издања

Препоручује се након финалне рунде тестирања у TestFlight-у сачекати 24–48 сати пре слања на рецензију. Ово време омогућава тестерима да открију критичне грешке које могу проћи аутоматске тестове. Release candidate (RC) билд у TestFlight-у — стандард праксе зрелих iOS тимова.

Шта радити након објављивања

TestFlight билдови аутоматски постају недоступни за нове инсталације након изласка релизне верзије у App Store-у. Тестери који су већ инсталирали бета верзију могу је наставити да користе током 30 дана након објављивања издања, након чега апликација престаје да се отвара. Уверите се да су тестери ажурирали на App Store верзију.

Често постављана питања

Колико кошта TestFlight за програмера?

TestFlight је потпуно бесплатан за учеснике Apple Developer Program-а (99 USD/годишње). За коришћење услуге не наплаћује се додатна накнада, без обзира на број билдова и тестера. Плаћате само претплату за Apple програмера — TestFlight је подразумевано укључен у њу.

Може ли се TestFlight користити за Android апликације?

Не, TestFlight је ексклузивна услуга Apple екосистема. За Android постоји сличан алат у Google Play Console-у — Internal Testing и Open Testing траке. За објављивање бета верзија на Android-у такође се користе Firebase App Distribution и DeployGate.

Колико дуго траје обрада билда у TestFlight-у?

Обрада траје од 15 минута до 2 сата за први билд након учитавања. Наредни билдови се обрађују брже — обично 15–30 минута. Време обраде зависи од оптерећења Apple сервера. Статус се може пратити у App Store Connect-у у секцији Activity.

Постоји ли ограничење броја билдова у TestFlight-у?

Сваки билд је доступан за тестирање 90 дана од тренутка учитавања. Број билдова није ограничен, али активних може бити највише 30 истовремено. Стари билдови се аутоматски бришу по истеку рока или при достизању лимита.

Како позвати тестера без Apple ID-а?

За учешће у тестирању кроз TestFlight потребан је Apple ID. Спољни тестери се позивају путем е-поште — при првом отварању линка систем ће понудити креирање Apple ID-а ако га још нема. Јавни линк је такође доступан за дељење на друштвеним мрежама или блогу.

Резиме

  • TestFlight — званична Apple услуга за бета тестирање, бесплатна за учеснике Apple Developer Program-а
  • До 10 000 спољних и 100 унутрашњих тестера без прикупљања UDID-а и ручног конфигурисања уређаја
  • Аутоматско прикупљање crash логова, повратних информација и дијагностичких података кроз TestFlight апликацију
  • Учитавање билдова могуће кроз Xcode, Application Loader, xcrun altool и Fastlane
  • Исти билд из TestFlight-а се шаље на рецензију у App Store — елиминисана је разлика између тестиране и релизне верзије
  • 90 дана — рок доступности билда за тестирање, до 30 активних билдова истовремено
  • Препорука: подесите аутоматско учитавање билдова у TestFlight кроз Fastlane и CI/CD за редовно тестирање сваке компилације

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

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

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

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