TestFlight: distribuire beta iOS ai tester
TestFlight è la piattaforma ufficiale Apple per testing di app iOS, iPadOS, macOS e visionOS. Permette agli sviluppatori di distribuire build pre-release a tester interni (team development) e tester esterni (utenti reali) prima del rilascio pubblico su App Store. È gratis, integrato con App Store Connect e in azienda è ottimo per distribuire app interne fino a 10.000 utenti. In questa guida vediamo come configurarlo e usarlo.
Come funziona
Lo sviluppatore carica una build TestFlight su App Store Connect. Apple esegue verifica automatica (in 5-30 min per tester interni) e poi distribuisce ai tester registrati. I tester installano l'app TestFlight dall'App Store e accettano l'invito per scaricare la beta. Possono inviare feedback con screenshot direttamente integrato.
Limiti
- Massimo 100 tester interni (team development Apple Developer Program).
- Massimo 10.000 tester esterni.
- Ogni build TestFlight scade dopo 90 giorni: carica nuova build prima.
- Tester interni: nessuna review Apple.
- Tester esterni: review Apple "soft" (5-10 minuti tipicamente).
Procedura passo-passo (sviluppatore)
- In Xcode, vai su Product, Archive.
- Quando l'archivio è pronto, clicca Distribute App.
- Scegli App Store Connect, poi Upload.
- Attendi caricamento e processamento (5-15 min).
- Vai su App Store Connect, La tua app, TestFlight.
- Vedi la build appena caricata: stato "Processing", poi "Ready".
- Aggiungi i tester:
- Per tester interni: aggiungi i membri del team Apple Developer.
- Per tester esterni: crea un gruppo, aggiungi indirizzi email.
- Per gruppi esterni, sottometti la build a review (1-24 ore).
- Una volta approvata, i tester ricevono email di invito.
Procedura passo-passo (tester)
- Ricevi email di invito o link pubblico TestFlight.
- Installa l'app TestFlight dall'App Store.
- Apri l'invito: si apre TestFlight con dettagli dell'app.
- Tocca Accetta.
- Tocca Installa: l'app beta si installa accanto a quella production (se esistente).
- Usa l'app normalmente.
- Per inviare feedback: dentro TestFlight, tocca l'app, scrivi commento con screenshot.
Public link TestFlight
Per distribuire massivamente:
- In App Store Connect, vai in gruppo Esterni.
- Abilita Public Link.
- Apple genera URL pubblico (es. testflight.apple.com/join/xxxx).
- Condividi il link via social, sito, email.
- Chiunque con quel link può iscriversi al beta fino a 10.000 persone.
Feedback dai tester
I tester possono inviare feedback in due modi:
- Screenshot + commento: durante l'uso, screenshot e poi tocca "Condividi screenshot beta tester".
- Crash report: TestFlight raccoglie crash automaticamente con stack trace, simboliche.
I report appaiono in App Store Connect, sezione Feedback. Lo sviluppatore può scaricare crash da risolvere.
Versioning e gestione build
Ogni build TestFlight ha versione (es. 1.2.3) e build number (es. 45). Convenzione:
- Versione: increment per major/minor changes (1.0 → 1.1).
- Build: increment sempre, anche per piccole modifiche (45 → 46).
App Store rifiuta upload se build number ≤ ultimo caricato.
TestFlight per uso interno aziendale
Le aziende possono usare TestFlight per distribuire app interne senza Apple Developer Enterprise Program. Limiti: 10.000 tester (sufficienti per quasi tutte), review Apple (anche minimale), build scade 90 giorni. È ormai la modalità raccomandata da Apple per app aziendali, in alternativa a Custom App via ABM.
Errori comuni e come risolverli
- "Build invalid": SDK Xcode troppo vecchio. Aggiorna Xcode.
- "Processing" infinito: 24h massimo, poi contatta Apple. Spesso problemi di Apple, riprova.
- Tester non ricevono invito: verifica spam, verifica indirizzo email corretto.
- Crash report assenti: in Info.plist verifica simbolicazione attiva. Carica .dSYM su App Store Connect.
- Build scaduta a 90 giorni: i tester non possono più aprire. Carica nuova build e notifica.
- Review esterna in pending da 5 giorni: Apple rallenta sotto i ponti festivi. Pazienza.
Best practice
- Crea gruppi tester separati: Alpha (sviluppatori), Beta interna (azienda), Beta esterna (utenti).
- Carica nuove build ogni 1-2 settimane per testing continuo.
- Risolvi crash prima di submit App Store finale.
- Comunica chiaramente cosa testare con "What to Test" in App Store Connect.
- Non distribuire mai build con dati di produzione.
- Usa feature flag per attivare/disattivare funzionalità lato server.
Domande frequenti
D: TestFlight è gratis?
R: Sì, incluso nell'Apple Developer Program ($99/anno).
D: I tester pagano l'app?
R: No, è sempre gratis in beta. Acquisti in-app possono usare sandbox.
D: TestFlight funziona offline?
R: L'installazione richiede internet, poi l'app funziona come quella production.
D: Posso convertire app TestFlight in App Store?
R: Sì, da App Store Connect "Submit for Review" porta la build a pubblicazione standard.
Strategie di rollout incrementale
Una pratica avanzata in TestFlight è il rollout incrementale: invece di rilasciare una nuova build a tutti i 10.000 tester contemporaneamente, la rilasci a sottogruppi crescenti. Esempio: prima giorno solo gruppo "Power Users" (50 persone), poi gruppo "Early adopters" (500), infine "Tutti" (10.000). Vantaggi: rilevi bug critici prima che colpiscano tutti, raccogli feedback strutturato, puoi fermare il rollout se emergono problemi. App Store Connect non supporta nativamente questa funzione, va simulato creando gruppi separati e abilitando manualmente.
Crash reports e Sentry/Crashlytics
I crash report nativi di TestFlight sono utili ma limitati: vedi stack trace ma non contesto utente, breadcrumb, dati custom. Per analisi più profonde integra Sentry, Firebase Crashlytics o Instabug nell'app. Questi tool aggiungono: utente che ha avuto il crash, ultima azione effettuata, valori variabili, log network calls, screenshot automatici. Sono gratis fino a X eventi/mese, paganti per volumi enterprise. Integrazione di 1 giorno di lavoro per developer iOS, ritorno enorme in qualità beta testing.
Hai bisogno di aiuto?
Se vuoi supporto iPhone/iPad aziendale dal team di G Tech Group, scrivici tramite il modulo di contatto.