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 срещу Ad Hoc срещу 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 за билда

Билдът трябва да бъде изграден с дистрибуционен сертификат и правилен 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). За получаване на символизирани 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 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също