TestFlight — is de officiële Apple-service voor het bèta-testen van iOS-, iPadOS-, watchOS- en tvOS-apps. Via TestFlight verspreiden ontwikkelaars pre-release builds onder maximaal 10.000 externe testers, verzamelen ze feedback en crashrapporten zonder publicatie in de App Store. Volgens Apple Developer Documentation, 2025 gebruikt meer dan 80% van de apps in de App Store TestFlight in de voorbereidingsfase van een release.
Belangrijkste punten
TestFlight — is de enige officiële en legale manier om iOS-apps te verspreiden voor testen zonder publicatie in de App Store. De service werd in 2014 door Apple gelanceerd na de overname van het gelijknamige bedrijf. Vóór de komst van TestFlight gebruikten ontwikkelaars Ad Hoc-distributie met een limiet van 100 apparaten per seizoen — TestFlight verwijderde deze beperking en vereenvoudigde het proces tot een paar klikken.
iOS heeft een streng beveiligingsbeleid: een app kan alleen via de App Store of met speciale certificaten op een apparaat worden geïnstalleerd. TestFlight lost het bèta-testprobleem op door als proxy te fungeren tussen de ontwikkelaar en de tester: Apple controleert de build op basisvereisten, waarna testers de app ontvangen via de TestFlight-app uit de App Store, wat geen vertrouwen in niet-ondertekende bestanden vereist.
Er zijn drie manieren om iOS-apps buiten de App Store te verspreiden: Ad Hoc (limiet van 100 apparaten, vereist UDID van elk apparaat), Enterprise (interne bedrijfsdistributie zonder limiet, vereist een Apple Enterprise-certificaat voor $299/jaar) en TestFlight (tot 10.000 testers, gratis, geen UDID-verzameling nodig). TestFlight is de optimale keuze voor bèta-testen, Ad Hoc is geschikt voor apparaatspecifieke tests, Enterprise — voor bedrijfsapps.
Het proces van het publiceren van een build via TestFlight bestaat uit vijf stappen: bouwen in Xcode, uploaden naar App Store Connect via Archive Organizer, verwerking door Apple, testers uitnodigen, de app installeren via de TestFlight-app. Elke stap duurt van enkele minuten tot een uur, afhankelijk van de complexiteit van het project.
De build moet worden gebouwd met een distributiecertificaat en een geldig provisioning profile. Apple controleert: geldigheid van het certificaat, overeenkomst van bundle identifier, afwezigheid van private API's, correctheid van pictogrammen (1024×1024) en aanwezigheid van het App Store-pictogram. Als de build de controle niet doorstaat — toont TestFlight een foutmelding met een beschrijving van het probleem.
Na het uploaden doorloopt de build een geautomatiseerde Apple-controle: statische analyse van binaire code, controle van digitale handtekening, scannen op gebruik van private API's en malware. Verwerking duurt 15 minuten tot 2 uur voor de eerste build en meestal 15–30 minuten voor volgende builds. De verwerkingsstatus wordt weergegeven in Activity in App Store Connect.
// TestFlight configureren in Swift AppDelegate
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Controle: of de app via TestFlight is geïnstalleerd
if Bundle.main.appStoreReceiptURL?.lastPathComponent
== "sandboxReceipt" {
print("Beta version via TestFlight")
}
return true
}
}
TestFlight verdeelt testers in twee groepen: interne (Internal Testers) en externe (External Testers). Het verschil zit in het aantal deelnemers, toegang tot builds en de noodzaak van Apple-beoordeling. De juiste groepskeuze versnelt het testproces en houdt zich aan het App Store-beleid.
Tot 100 deelnemers uit het Apple Developer Program-team. Om een interne tester uit te nodigen, volstaat het om zijn Apple ID toe te voegen in App Store Connect — hij krijgt onmiddellijk toegang tot alle builds. Geen Apple-beoordeling vereist. Ideaal voor dagelijks smoke-testen en controle van functies in een vroeg stadium.
Tot 10.000 deelnemers die geen deel uitmaken van het ontwikkelingsteam. De eerste build voor externe testers doorloopt een basis Apple-beoordeling (meestal 1–2 dagen). Volgende builds met wijzigingen die de kernfunctionaliteit niet beïnvloeden kunnen zonder herbeoordeling worden doorgevoerd. Externe testers worden uitgenodigd via e-mail of een openbare link.
| Parameter | Internal Testers | External Testers |
|---|---|---|
| Max. aantal | 100 | 10.000 |
| Apple-beoordeling | Niet vereist | Eerste build — verplicht |
| Uitnodiging | Apple ID uit team | E-mail / openbare link |
| Geldigheidsduur build | 90 dagen | 90 dagen |
| Toegang tot builds | Allemaal tegelijk | Alleen actieve groepen |
Het uploaden van een build naar TestFlight gebeurt via Xcode, Application Loader of de opdrachtregel met xcrun. De meest gebruikelijke methode — via Xcode Archive Organizer na het maken van een projectarchief. Een alternatieve methode — automatisering via Fastlane voor CI/CD Pipeline.
Maak een archief (Product → Archive), open Organizer, selecteer het archief en klik op Distribute App. Kies TestFlight als distributiemethode, geef het certificaat en provisioning profile op. Xcode uploadt de build naar App Store Connect, waar deze verschijnt na verwerking. Het hele proces duurt 10–20 minuten voor de eerste upload.
Fastlane — is de populairste tool voor het automatiseren van build-uploads naar TestFlight. Het commando fastlane pilot uploadt de build en beheert testers zonder Xcode te openen. Integratie van Fastlane met een CI/CD-server maakt automatische publicatie van builds in TestFlight mogelijk nadat alle tests zijn geslaagd.
# Fastfile — build uploaden naar TestFlight
default_platform(:ios)
lane :beta do
# Certificaten ophalen via match
match(type: "appstore")
# Bouwen en ondertekenen
build_app(
scheme: "MyApp",
export_method: "app-store",
workspace: "MyApp.xcworkspace"
)
# Uploaden naar TestFlight
pilot(
skip_waiting_for_build: true,
distribute_external: false,
notify_external_testers: false
)
end
Fastlane pilot uploadt automatisch het IPA naar App Store Connect, wacht op verwerking (als skip_waiting_for_build = false) en wijst de build toe aan geselecteerde groepen testers. Het commando distribute_external: true stuurt de build onmiddellijk naar externe testers na verwerking.
Zonder Fastlane kan xcrun worden gebruikt: xcrun altool --upload-app --file path/to/app.ipa --username YOUR_APPLE_ID --password @keychain:AC_PASSWORD. altool wordt door Apple ondersteund voor CI-omgevingen en vereist geen grafische interface. Het wachtwoord wordt doorgegeven via keychain of app-specific password — gebruik geen platte tekst wachtwoorden.
TestFlight biedt verschillende feedbackmechanismen: een ingebouwd feedbackformulier, automatische verzameling van crashlogs, gebruiksstatistieken en schermafbeeldingen. Het team ontvangt alle gegevens in App Store Connect zonder dat SDK's van derden voor bèta-testen hoeven te worden geïmplementeerd.
De tester opent de TestFlight-app, selecteert uw build en klikt op Send Feedback. Het formulier maakt het mogelijk tekstuele feedback te sturen, een schermafbeelding bij te voegen en de ernst aan te geven. Alle feedback wordt verzameld in App Store Connect in het gedeelte TestFlight → Feedback. De ontwikkelaar kan op feedback reageren en de tester ontvangt een melding in de TestFlight-app.
Bij een crash van de app verzamelt TestFlight automatisch een crashrapport: de call-stack, de OS-versie, het apparaatmodel en het tijdstip van de crash. Crashlogs zijn beschikbaar in Xcode Organizer (Crashes) en App Store Connect (TestFlight → Crashes). Voor het verkrijgen van gesymboliseerde crashlogs moeten dSYM-bestanden samen met de build of afzonderlijk via Xcode worden geüpload.
TestFlight toont statistieken: aantal installaties, actieve testers, sessies en crashes. Analyse wordt dagelijks bijgewerkt en helpt bij het evalueren van de betrokkenheid van testers. Als gedurende een week geen enkele tester de app heeft geopend — is het de moeite waard om de communicatie met de groep of de kwaliteit van de build te heroverwegen.
TestFlight is een integraal onderdeel van het publicatieproces in de App Store. Dezelfde build die via TestFlight bèta-getest is, kan ter beoordeling naar Apple worden gestuurd zonder herbouw — druk gewoon op een knop in App Store Connect. Dit elimineert het risico dat de productie-build afwijkt van de geteste build.
Selecteer in App Store Connect de build die de test heeft doorstaan en klik op Submit for Review. Apple gebruikt dezelfde build uit TestFlight — opnieuw uploaden is niet nodig. De beoordelingstijd is meestal 1–3 dagen. Als de build wordt afgewezen — corrigeer de opmerkingen, upload een nieuwe build naar TestFlight en herhaal het proces.
Het wordt aanbevolen om na de laatste testronde in TestFlight 24–48 uur te wachten voordat u ter beoordeling indient. Deze tijd geeft testers de kans om kritieke bugs te ontdekken die door geautomatiseerde tests kunnen glippen. De Release candidate (RC)-build in TestFlight — is de standaardpraktijk van volwassen iOS-teams.
TestFlight-builds worden automatisch niet meer beschikbaar voor nieuwe installaties na de release van de productieversie in de App Store. Testers die de bèta-versie al hebben geïnstalleerd, kunnen deze nog 30 dagen na publicatie van de release blijven gebruiken, waarna de app niet meer opent. Zorg ervoor dat testers zijn bijgewerkt naar de App Store-versie.
Veelgestelde vragen
TestFlight is volledig gratis voor deelnemers aan het Apple Developer Program ($99/jaar). Voor het gebruik van de service worden geen extra kosten in rekening gebracht, ongeacht het aantal builds en testers. U betaalt alleen voor het Apple-ontwikkelaarsabonnement — TestFlight is er standaard bij inbegrepen.
Nee, TestFlight is een exclusieve service van het Apple-ecosysteem. Voor Android bestaat een vergelijkbare tool in Google Play Console — de Internal Testing en Open Testing tracks. Voor het publiceren van bèta-versies op Android worden ook Firebase App Distribution en DeployGate gebruikt.
Verwerking duurt van 15 minuten tot 2 uur voor de eerste build na upload. Volgende builds worden sneller verwerkt — meestal 15–30 minuten. De verwerkingstijd is afhankelijk van de belasting van de Apple-servers. De status kan worden gevolgd in App Store Connect in het gedeelte Activity.
Elke build is 90 dagen beschikbaar voor testen vanaf het moment van uploaden. Het aantal builds is onbeperkt, maar er kunnen niet meer dan 30 builds tegelijk actief zijn. Oude builds worden automatisch verwijderd na het verlopen van de geldigheidsduur of bij het bereiken van de limiet.
Voor deelname aan het testen via TestFlight is een Apple ID vereist. Externe testers worden uitgenodigd via een e-mailkoppeling — bij het eerste openen van de koppeling biedt het systeem aan om een Apple ID aan te maken als deze nog niet bestaat. Een openbare koppeling is ook beschikbaar voor verspreiding op sociale media of een blog.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook