TestFlight — este serviciul oficial Apple pentru testarea beta a aplicațiilor iOS, iPadOS, watchOS și tvOS. Prin TestFlight, dezvoltatorii distribuie versiuni de pre-lansare către până la 10 000 de testeri externi, colectează feedback și rapoarte de crash fără a fi nevoie de publicare în App Store. Conform Apple Developer Documentation, 2025, peste 80% din aplicațiile din App Store folosesc TestFlight în etapa de pregătire a lansării.
Principalele
TestFlight — este singurul mod oficial și legal de a distribui aplicații iOS pentru testare fără publicare în App Store. Serviciul a fost lansat de Apple în 2014 după achiziționarea companiei cu același nume. Înainte de apariția TestFlight, dezvoltatorii foloseau distribuția Ad Hoc cu o limitare de 100 de dispozitive pe sezon — TestFlight a eliminat această limitare și a simplificat procesul la câteva clicuri.
iOS are o politică de securitate strictă: aplicația poate fi instalată pe un dispozitiv doar prin App Store sau folosind certificate speciale. TestFlight rezolvă problema testării beta acționând ca un proxy între dezvoltator și tester: Apple verifică build-ul pentru cerințele de bază, după care testerii primesc aplicația prin aplicația TestFlight din App Store, ceea ce nu necesită încredere în fișiere nesemnate.
Există trei moduri de a distribui aplicații iOS în afara App Store: Ad Hoc (limitare de 100 de dispozitive, necesită UDID-ul fiecărui dispozitiv), Enterprise (distribuție intra-organizațională fără limită, necesită certificat Enterprise Apple la 299 USD/an) și TestFlight (până la 10 000 de testeri, gratuit, nu necesită colectarea UDID-urilor). TestFlight este alegerea optimă pentru testarea beta, Ad Hoc este potrivit pentru teste specifice dispozitivelor, Enterprise — pentru aplicații corporative.
Procesul de publicare a unui build prin TestFlight constă din cinci pași: construirea în Xcode, încărcarea în App Store Connect prin Archive Organizer, procesarea de către Apple, invitarea testerilor, instalarea aplicației prin aplicația TestFlight. Fiecare pas durează de la câteva minute până la o oră, în funcție de complexitatea proiectului.
Build-ul trebuie construit cu un certificat de distribuție și un provisioning profile corect. Apple verifică: valabilitatea certificatului, conformitatea bundle identifier, absența API-urilor private, corectitudinea pictogramelor (1024×1024) și prezența pictogramei App Store. Dacă build-ul nu trece verificarea — TestFlight afișează o eroare cu descrierea problemei.
După încărcare, build-ul trece printr-o verificare automatizată Apple: analiză statică a codului binar, verificarea semnăturii digitale, scanarea pentru API-uri private și malware. Procesarea durează de la 15 minute la 2 ore pentru primul build și de obicei 15–30 de minute pentru următoarele. Statusul procesării este afișat în Activity din App Store Connect.
// Configurarea TestFlight în Swift AppDelegate
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Verificare: dacă aplicația a fost instalată prin TestFlight
if Bundle.main.appStoreReceiptURL?.lastPathComponent
== "sandboxReceipt" {
print("Beta version via TestFlight")
}
return true
}
}
TestFlight împarte testerii în două grupuri: interni (Internal Testers) și externi (External Testers). Diferența constă în numărul de participanți, accesul la build-uri și necesitatea revizuirii Apple. Alegerea corectă a grupului accelerează procesul de testare și respectă politicile App Store.
Până la 100 de participanți din componența echipei Apple Developer Program. Pentru a invita un tester intern, este suficient să adăugați Apple ID-ul său în App Store Connect — acesta obține imediat acces la toate build-urile. Nu este necesară revizuirea Apple. Ideal pentru testarea zilnică smoke și verificarea funcțiilor în stadii incipiente.
Până la 10 000 de participanți care nu fac parte din echipa de dezvoltare. Primul build pentru testerii externi trece printr-o revizuire de bază Apple (de obicei 1–2 zile). Build-urile ulterioare cu modificări care nu afectează funcționalitatea de bază pot trece fără o nouă revizuire. Testerii externi sunt invitați prin e-mail sau link public.
| Parametru | Internal Testers | External Testers |
|---|---|---|
| Nr. maxim | 100 | 10 000 |
| Revizuire Apple | Nu este necesară | Primul build — obligatoriu |
| Invitare | Apple ID din echipă | E-mail / link public |
| Valabilitatea build-ului | 90 de zile | 90 de zile |
| Acces la build-uri | La toate simultan | Doar grupuri active |
Încărcarea unui build în TestFlight se realizează prin Xcode, Application Loader sau linia de comandă cu ajutorul xcrun. Cea mai răspândită metodă — prin Xcode Archive Organizer după crearea arhivei proiectului. Metoda alternativă — automatizarea prin Fastlane pentru Pipeline CI/CD.
Construiți o arhivă (Product → Archive), deschideți Organizer, selectați arhiva și apăsați Distribute App. Alegeți TestFlight ca metodă de distribuție, indicați certificatul și provisioning profile. Xcode va încărca build-ul în App Store Connect, unde va apărea după procesare. Întregul proces durează 10–20 de minute pentru prima încărcare.
Fastlane — este cel mai popular instrument pentru automatizarea încărcării build-urilor în TestFlight. Comanda fastlane pilot încarcă build-ul și gestionează testerii fără a deschide Xcode. Integrarea Fastlane cu serverul CI/CD permite publicarea automată a build-urilor în TestFlight după trecerea tuturor testelor.
# Fastfile — încărcarea build-ului în TestFlight
default_platform(:ios)
lane :beta do
# Obținerea certificatelor prin match
match(type: "appstore")
# Construirea și semnarea
build_app(
scheme: "MyApp",
export_method: "app-store",
workspace: "MyApp.xcworkspace"
)
# Încărcarea în TestFlight
pilot(
skip_waiting_for_build: true,
distribute_external: false,
notify_external_testers: false
)
end
Fastlane pilot încarcă automat IPA-ul în App Store Connect, așteaptă procesarea (dacă skip_waiting_for_build = false) și atribuie build-ul grupurilor selectate de testeri. Comanda distribute_external: true trimite imediat build-ul testerilor externi după procesare.
Fără Fastlane, puteți folosi xcrun: xcrun altool --upload-app --file path/to/app.ipa --username YOUR_APPLE_ID --password @keychain:AC_PASSWORD. altool este acceptat de Apple pentru medii CI și nu necesită interfață grafică. Parola se transmite prin keychain sau app-specific password — nu folosiți parole în text simplu.
TestFlight oferă mai multe mecanisme de feedback: formularul de feedback integrat, colectarea automată a logurilor de crash, metrici de utilizare și capturi de ecran. Echipa primește toate datele în App Store Connect fără a fi nevoie să implementeze SDK-uri terțe pentru testarea beta.
Testerul deschide aplicația TestFlight, selectează build-ul dvs. și apasă Send Feedback. Formularul permite trimiterea unui feedback text, atașarea unei capturi de ecran și indicarea severității. Toate feedback-urile sunt colectate în App Store Connect în secțiunea TestFlight → Feedback. Dezvoltatorul poate răspunde la feedback, iar testerul va primi o notificare în aplicația TestFlight.
La căderea aplicației, TestFlight colectează automat raportul de crash: stiva de apeluri, versiunea sistemului de operare, modelul dispozitivului și momentul căderii. Logurile de crash sunt disponibile în Xcode Organizer (Crashes) și App Store Connect (TestFlight → Crashes). Pentru a obține loguri de crash simbolizate, trebuie să încărcați fișierele dSYM împreună cu build-ul sau separat prin Xcode.
TestFlight arată metrici: numărul de instalări, testeri activi, sesiuni și crash-uri. Analizele se actualizează zilnic și ajută la evaluarea implicării testerilor. Dacă într-o săptămână niciun tester nu a deschis aplicația — merită să reconsiderați comunicarea cu grupul sau calitatea build-ului.
TestFlight este o parte integrantă a procesului de publicare în App Store. Același build care a trecut prin testarea beta prin TestFlight poate fi trimis spre revizuire Apple fără recompilare — este suficient să apăsați un buton în App Store Connect. Aceasta elimină riscul ca build-ul de producție să difere de cel testat.
În App Store Connect, selectați build-ul care a trecut testarea și apăsați Submit for Review. Apple folosește același build din TestFlight — reîncărcarea nu este necesară. Timpul de revizuire este de obicei de 1–3 zile. Dacă build-ul este respins — corectați observațiile, încărcați un build nou în TestFlight și repetați procesul.
Se recomandă ca după runda finală de testare în TestFlight să așteptați 24–48 de ore înainte de trimiterea spre revizuire. Acest timp permite testerilor să detecteze bug-uri critice care ar putea scăpa de testele automate. Build-ul Release candidate (RC) în TestFlight — este standardul echipelor iOS mature.
Build-urile TestFlight devin automat indisponibile pentru instalări noi după lansarea versiunii de producție în App Store. Testerii care au instalat deja versiunea beta o pot folosi în continuare timp de 30 de zile după publicarea lansării, după care aplicația nu se mai deschide. Asigurați-vă că testerii s-au actualizat la versiunea din App Store.
Întrebări frecvente
TestFlight este complet gratuit pentru participanții Apple Developer Program (99 USD/an). Pentru utilizarea serviciului nu se percepe nicio taxă suplimentară, indiferent de numărul de build-uri și testeri. Plătiți doar pentru abonamentul de dezvoltator Apple — TestFlight este inclus în el în mod implicit.
Nu, TestFlight este un serviciu exclusiv al ecosistemului Apple. Pentru Android există un instrument similar în Google Play Console — track-urile Internal Testing și Open Testing. Pentru publicarea versiunilor beta pe Android se mai folosesc Firebase App Distribution și DeployGate.
Procesarea durează de la 15 minute la 2 ore pentru primul build după încărcare. Build-urile ulterioare sunt procesate mai repede — de obicei 15–30 de minute. Timpul de procesare depinde de încărcarea serverelor Apple. Statusul poate fi urmărit în App Store Connect în secțiunea Activity.
Fiecare build este disponibil pentru testare timp de 90 de zile de la momentul încărcării. Numărul de build-uri nu este limitat, dar nu pot fi active mai mult de 30 de build-uri simultan. Build-urile vechi sunt șterse automat după expirare sau la atingerea limitei.
Pentru a participa la testare prin TestFlight este necesar un Apple ID. Testerii externi sunt invitați printr-un link de e-mail — la prima deschidere a linkului, sistemul va propune crearea unui Apple ID dacă acesta nu există încă. Linkul public este disponibil și pentru distribuire în rețelele sociale sau pe blog.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și