TestFlight — je oficiální služba Apple pro beta testování iOS, iPadOS, watchOS a tvOS aplikací. Přes TestFlight vývojáři distribuují předvydáníové buildy až 10 000 externím testerům, sbírají zpětnou vazbu a crash reporty bez nutnosti publikování v App Store. Podle Apple Developer Documentation, 2025 používá více než 80 % aplikací v App Store TestFlight ve fázi přípravy vydání.
Hlavní body
TestFlight — je jediný oficiální a legální způsob distribuce iOS aplikací pro testování bez publikování v App Store. Služba byla spuštěna Apple v roce 2014 po akvizici stejnojmenné společnosti. Před příchodem TestFlight vývojáři používali Ad Hoc distribuci s omezením 100 zařízení na sezónu — TestFlight toto omezení odstranil a zjednodušil proces na několik kliknutí.
iOS má přísnou bezpečnostní politiku: aplikace může být nainstalována na zařízení pouze přes App Store nebo pomocí speciálních certifikátů. TestFlight řeší problém beta testování tím, že funguje jako proxy mezi vývojářem a testerem: Apple zkontroluje build na základní požadavky, poté testeři obdrží aplikaci přes aplikaci TestFlight z App Store, což nevyžaduje důvěru v nepodepsané soubory.
Existují tři způsoby distribuce iOS aplikací mimo App Store: Ad Hoc (omezení 100 zařízení, vyžaduje UDID každého zařízení), Enterprise (vnitrofiremní distribuce bez omezení, vyžaduje Apple Enterprise certifikát za 299 USD/rok) a TestFlight (až 10 000 testerů, zdarma, nevyžaduje sběr UDID). TestFlight je optimální volbou pro beta testování, Ad Hoc je vhodný pro testy specifické pro zařízení, Enterprise — pro firemní aplikace.
Proces publikování buildu přes TestFlight se skládá z pěti kroků: sestavení v Xcode, nahrání do App Store Connect přes Archive Organizer, zpracování Apple, pozvání testerů, instalace aplikace přes aplikaci TestFlight. Každý krok trvá od několika minut do hodiny v závislosti na složitosti projektu.
Build musí být sestaven s distribučním certifikátem a správným provisioning profile. Apple kontroluje: platnost certifikátu, shodu bundle identifier, nepřítomnost soukromých API, správnost ikon (1024×1024) a existenci App Store ikony. Pokud build neprojde kontrolou — TestFlight zobrazí chybu s popisem problému.
Po nahrání build prochází automatizovanou kontrolou Apple: statická analýza binárního kódu, kontrola digitálního podpisu, skenování na použití soukromých API a malwaru. Zpracování trvá 15 minut až 2 hodiny pro první build a obvykle 15–30 minut pro následující. Stav zpracování se zobrazuje v Activity v App Store Connect.
// Nastavení TestFlight v Swift AppDelegate
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Kontrola: zda byla aplikace nainstalována přes TestFlight
if Bundle.main.appStoreReceiptURL?.lastPathComponent
== "sandboxReceipt" {
print("Beta version via TestFlight")
}
return true
}
}
TestFlight rozděluje testery do dvou skupin: interní (Internal Testers) a externí (External Testers). Rozdíl je v počtu účastníků, přístupu k buildům a potřebě Apple recenze. Správný výběr skupiny urychluje proces testování a dodržuje politiky App Store.
Až 100 účastníků z týmu Apple Developer Program. Pro pozvání interního testera stačí přidat jeho Apple ID v App Store Connect — okamžitě získá přístup ke všem buildům. Není vyžadována Apple recenze. Ideální pro každodenní smoke testování a kontrolu funkcí v raných fázích.
Až 10 000 účastníků mimo vývojářský tým. První build pro externí testery prochází základní Apple recenzí (obvykle 1–2 dny). Následující buildy se změnami, které neovlivňují klíčovou funkcionalitu, mohou projít bez opakované recenze. Externí testeři jsou zváni přes e-mail nebo veřejný odkaz.
| Parametr | Internal Testers | External Testers |
|---|---|---|
| Max. počet | 100 | 10 000 |
| Apple recenze | Není vyžadována | První build — povinná |
| Pozvání | Apple ID z týmu | E-mail / veřejný odkaz |
| Platnost buildu | 90 dní | 90 dní |
| Přístup k buildům | Ke všem najednou | Pouze aktivní skupiny |
Nahrání buildu do TestFlight se provádí přes Xcode, Application Loader nebo příkazový řádek pomocí xcrun. Nejobvyklejší způsob — přes Xcode Archive Organizer po vytvoření archivu projektu. Alternativní způsob — automatizace přes Fastlane pro CI/CD Pipeline.
Sestavte archiv (Product → Archive), otevřete Organizer, vyberte archiv a klikněte na Distribute App. Vyberte TestFlight jako metodu distribuce, uveďte certifikát a provisioning profile. Xcode nahraje build do App Store Connect, kde se objeví po zpracování. Celý proces trvá 10–20 minut pro první nahrání.
Fastlane — je nejpopulárnější nástroj pro automatizaci nahrávání buildů do TestFlight. Příkaz fastlane pilot nahraje build a spravuje testery bez otevírání Xcode. Integrace Fastlane s CI/CD serverem umožňuje automatické publikování buildů v TestFlight po absolvování všech testů.
# Fastfile — nahrání buildu do TestFlight
default_platform(:ios)
lane :beta do
# Získání certifikátů přes match
match(type: "appstore")
# Sestavení a podepsání
build_app(
scheme: "MyApp",
export_method: "app-store",
workspace: "MyApp.xcworkspace"
)
# Nahrání do TestFlight
pilot(
skip_waiting_for_build: true,
distribute_external: false,
notify_external_testers: false
)
end
Fastlane pilot automaticky nahraje IPA do App Store Connect, čeká na zpracování (pokud skip_waiting_for_build = false) a přiřadí build vybraným skupinám testerů. Příkaz distribute_external: true okamžitě odešle build externím testerům po zpracování.
Bez Fastlane lze použít xcrun: xcrun altool --upload-app --file path/to/app.ipa --username YOUR_APPLE_ID --password @keychain:AC_PASSWORD. altool je podporován Apple pro CI prostředí a nevyžaduje grafické rozhraní. Heslo se předává přes keychain nebo app-specific password — nepoužívejte hesla v prostém textu.
TestFlight poskytuje několik mechanismů zpětné vazby: vestavěný formulář zpětné vazby, automatický sběr crash logů, metriky použití a snímky obrazovky. Tým obdrží všechna data v App Store Connect bez nutnosti implementovat SDK třetích stran pro beta testování.
Tester otevře aplikaci TestFlight, vybere váš build a klikne na Send Feedback. Formulář umožňuje odeslat textovou zpětnou vazbu, připojit snímek obrazovky a uvést závažnost. Všechna zpětná vazba se shromažďuje v App Store Connect v sekci TestFlight → Feedback. Vývojář může na zpětnou vazbu odpovědět a tester obdrží oznámení v aplikaci TestFlight.
Při pádu aplikace TestFlight automaticky shromažďuje crash report: zásobník volání, verzi OS, model zařízení a čas pádu. Crash logy jsou dostupné v Xcode Organizer (Crashes) a App Store Connect (TestFlight → Crashes). Pro získání symbolikovaných crash logů je nutné nahrát dSYM soubory společně s buildem nebo samostatně přes Xcode.
TestFlight zobrazuje metriky: počet instalací, aktivních testerů, relací a pádů. Analytika se aktualizuje denně a pomáhá vyhodnotit zapojení testerů. Pokud během týdne žádný tester neotevřel aplikaci — stojí za to přehodnotit komunikaci se skupinou nebo kvalitu buildu.
TestFlight je nedílnou součástí procesu publikace v App Store. Stejný build, který prošel beta testováním přes TestFlight, může být odeslán k Apple recenzi bez přestavby — stačí kliknout na tlačítko v App Store Connect. To eliminuje riziko, že se produkční build liší od testovaného.
V App Store Connect vyberte build, který prošel testováním, a klikněte na Submit for Review. Apple používá stejný build z TestFlight — opakované nahrání není nutné. Doba recenze je obvykle 1–3 dny. Pokud je build zamítnut — opravte připomínky, nahrajte nový build do TestFlight a opakujte proces.
Doporučuje se po finálním kole testování v TestFlight počkat 24–48 hodin před odesláním k recenzi. Tento čas umožňuje testerům odhalit kritické chyby, které mohou proklouznout automatickými testy. Release candidate (RC) build v TestFlight — standard praxe zralých iOS týmů.
TestFlight buildy se automaticky stanou nedostupnými pro nové instalace po vydání ostré verze v App Store. Testeri, kteří již nainstalovali beta verzi, ji mohou nadále používat po dobu 30 dnů po publikaci vydání, poté se aplikace přestane otevírat. Ujistěte se, že testeri aktualizovali na App Store verzi.
Často kladené otázky
TestFlight je zcela zdarma pro účastníky Apple Developer Program (99 USD/rok). Za používání služby se neúčtuje žádný dodatečný poplatek, bez ohledu na počet buildů a testerů. Platíte pouze za předplatné vývojáře Apple — TestFlight je v něm standardně zahrnut.
Ne, TestFlight je exkluzivní služba ekosystému Apple. Pro Android existuje podobný nástroj v Google Play Console — tracky Internal Testing a Open Testing. Pro publikování beta verzí na Androidu se také používají Firebase App Distribution a DeployGate.
Zpracování trvá od 15 minut do 2 hodin pro první build po nahrání. Následující buildy se zpracovávají rychleji — obvykle 15–30 minut. Doba zpracování závisí na vytížení serverů Apple. Stav lze sledovat v App Store Connect v sekci Activity.
Každý build je k dispozici pro testování po dobu 90 dnů od okamžiku nahrání. Počet buildů není omezen, ale aktivních může být nejvýše 30 buildů současně. Starší buildy jsou automaticky odstraněny po vypršení platnosti nebo při dosažení limitu.
Pro účast v testování přes TestFlight je vyžadováno Apple ID. Externí testeři jsou zváni přes e-mailový odkaz — při prvním otevření odkazu systém nabídne vytvoření Apple ID, pokud ještě neexistuje. Veřejný odkaz je také k dispozici pro sdílení na sociálních sítích nebo blogu.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také