Kein ernsthaftes App-Release sollte ohne Beta-Test auskommen. TestFlight ist Apples offizielle Plattform für genau diesen Zweck: Du verteilst Vorab-Versionen deiner iOS-App an ausgewählte Tester, sammelst ihr Feedback und behebst Probleme, bevor die App für alle im App Store erscheint. Diese Anleitung erklärt alles, was du über TestFlight wissen musst – von der Einrichtung bis zur professionellen Tester-Verwaltung.
Was ist TestFlight?
TestFlight wurde ursprünglich von Burstly entwickelt und 2014 von Apple übernommen. Seit iOS 8 ist es Apples offizielle Beta-Testing-Plattform und steht allen Apple-Developer-Mitgliedern kostenlos zur Verfügung. Tester installieren die kostenlose TestFlight-App aus dem App Store und erhalten darüber Einladungen und Updates zu Beta-Apps.
TestFlight unterstützt iOS, iPadOS, macOS (ab Monterey), watchOS und tvOS-Apps. Du kannst damit bis zu 10.000 externe Tester einladen und unbegrenzt interne Tester aus deinem Entwicklerteam verwalten.
Interne vs. externe Tester
TestFlight unterscheidet grundlegend zwischen zwei Tester-Typen:
Interne Tester
Interne Tester sind Mitglieder deines Apple Developer Teams in App Store Connect. Sie haben folgende Eigenschaften:
- Maximal 100 Personen (aus deinem Team in App Store Connect)
- Erhalten sofort Zugang zu neuen Builds – ohne Apple-Review
- Ideal für Entwickler, Designer und QA-Tester innerhalb deiner Organisation
- Können alle aktiven Builds testen
Interne Tester werden über ihre Apple ID in App Store Connect eingeladen. Sie müssen eine Rolle im Team haben (mindestens App Manager, Developer oder Marketing).
Externe Tester
Externe Tester sind echte Nutzer außerhalb deines Teams:
- Bis zu 10.000 Personen pro App
- Einladung per E-Mail oder öffentlichem Einladungslink
- Builds benötigen einen kurzen Beta App Review durch Apple (meist wenige Stunden)
- Idealer für realitätsnahe Nutzertests und Community-Betas
Build hochladen und vorbereiten
Bevor du Tester einladen kannst, muss ein Build in App Store Connect vorliegen. Der Upload-Prozess ist derselbe wie für eine reguläre Einreichung:
- In Xcode: Gerät auf "Any iOS Device (arm64)" setzen
- Product → Archive ausführen
- Im Organizer auf "Distribute App" klicken
- "App Store Connect" wählen und hochladen
Nach dem Upload (Apple verarbeitet Builds in ca. 15–30 Minuten) erscheint der Build in App Store Connect unter dem TestFlight-Tab. Du kannst dort optional Testnotizen hinzufügen – kurze Beschreibungen, was in diesem Build neu ist oder was die Tester besonders prüfen sollen.
Build-Nummern richtig verwalten
Jeder hochgeladene Build braucht eine eindeutig höhere Build-Nummer (CFBundleVersion). Die Versionsnummer (CFBundleShortVersionString) kann gleich bleiben, bis du bereit für einen neuen App Store Release bist. Ein gängiges Muster für CI/CD-Pipelines ist die Verwendung des Git-Commit-Zählers oder des aktuellen Timestamps als Build-Nummer:
# Build-Nummer aus Git-Commit-Count
BUILD=$(git rev-list --count HEAD)
agvtool new-version -all $BUILD
Tester einladen und Gruppen verwalten
In App Store Connect unter "TestFlight" kannst du Testergruppen anlegen. Gruppen erlauben es, verschiedene Builds an verschiedene Testergruppen zu verteilen – z.B. eine "Early Adopter"-Gruppe für deine treuesten Nutzer und eine "Allgemeine Beta"-Gruppe für breites Feedback.
Externe Tester per E-Mail einladen
- Erstelle oder wähle eine externe Gruppe
- Klicke auf "Add Testers" und gib E-Mail-Adressen ein (bis zu 10.000)
- Weise der Gruppe einen Build zu
- Tester erhalten eine Einladungs-E-Mail mit Link zur TestFlight-App
Öffentlicher Einladungslink
Für offene Beta-Tests kannst du einen öffentlichen Link aktivieren. Wer auf diesen Link klickt, wird automatisch als externer Tester eingeladen – ideal für die eigene Website, Social Media oder Newsletter. Du kannst den Link jederzeit deaktivieren oder die Testergruppe pausieren.
Feedback und Crash-Berichte sammeln
TestFlight bietet mehrere Mechanismen für Feedback:
Screenshot-Feedback
Tester können in der TestFlight-App einen Screenshot machen und direkt annotieren. Das Feedback (Screenshot + Kommentar + Gerätedaten) wird automatisch an App Store Connect gesendet. Du siehst alle Einsendungen im TestFlight-Dashboard unter "Feedback".
Crash-Berichte
Abstürze während des Beta-Tests werden automatisch als Crash Reports gesammelt. Du siehst in App Store Connect die Crash-Logs, betroffene iOS-Versionen und Gerättypen. Für eine detailliertere Analyse integriere Crashlytics (Firebase) oder Apples eigenes MetricKit-Framework:
// MetricKit – Crash-Diagnosen empfangen
import MetricKit
class MeineDiagnoseSubscriber: NSObject, MXMetricManagerSubscriber {
func didReceive(_ payloads: [MXMetricPayload]) {
// Metriken verarbeiten
}
func didReceive(_ payloads: [MXDiagnosticPayload]) {
// Crash- und Hang-Diagnosen verarbeiten
for payload in payloads {
if let crashes = payload.crashDiagnostics {
print(crashes)
}
}
}
}
Automatische Verteilung und Build-Ablauf
Du kannst TestFlight so konfigurieren, dass neue Builds automatisch an Tester verteilt werden ("Automatic Distribution"). Sobald Apple den Build verarbeitet hat, erhalten alle Tester in der entsprechenden Gruppe eine Push-Benachrichtigung in der TestFlight-App.
Wichtige Rahmenbedingungen:
- Beta-Builds verfallen nach 90 Tagen automatisch
- Pro App können bis zu 90 aktive Builds gleichzeitig existieren
- Tester können zwischen Builds wechseln (falls mehrere aktiv sind)
- Bei einem neuen Build erhalten Tester die Option zum Update, nicht automatisch zwingend
TestFlight für macOS und andere Plattformen
Seit macOS Monterey können Mac-Apps über TestFlight verteilt werden – sowohl native macOS-Apps als auch Mac Catalyst-Apps. Der Prozess ist identisch zu iOS: Build hochladen, Tester einladen, Feedback sammeln. Tester installieren die TestFlight-App für macOS aus dem Mac App Store.
Für watchOS-Apps wird TestFlight zusammen mit der iOS-App ausgeliefert – du kannst nicht getrennt Watches beta-testen. tvOS-Apps funktionieren ähnlich wie iOS.
Best Practices für effektives Beta-Testing
Aus der Erfahrung mit mehreren veröffentlichten Apps empfehle ich:
- Testnotizen schreiben: Sag den Testern konkret, was sie prüfen sollen. "Testet bitte den Checkout-Flow und die neue Suchfunktion" ist besser als keine Anleitung.
- Kleinere Gruppen zuerst: Beginne mit internen Testern, dann einer kleinen externen Gruppe, dann dem breiten Beta-Programm.
- Regelmäßige Updates: Halte das Beta-Programm lebendig mit wöchentlichen oder zweiwöchentlichen Builds. Inaktive Beta-Programme verlieren Tester-Engagement schnell.
- Feedback-Kanal ergänzen: TestFlight-Feedback allein reicht oft nicht. Ergänze es mit einem Discord-Server, einem Feedback-Formular oder direkten Interviews mit Top-Testern.
Wenn du bereit bist für den echten Release, lies die vollständige App Store Veröffentlichungs-Anleitung. Alle meine veröffentlichten iOS-Apps findest du auf ios.kotsch.tech.
Häufige Fragen
Brauchen externe Tester einen Apple Developer Account?
Nein. Externe Tester brauchen nur eine reguläre Apple ID und die kostenlose TestFlight-App aus dem App Store. Sie müssen kein Entwickler sein und zahlen nichts. Lediglich du als App-Entwickler benötigst das kostenpflichtige Apple Developer Program.
Wie lange haben Tester Zeit, eine Einladung anzunehmen?
Einladungslinks bleiben 30 Tage gültig. Nimmt ein Tester die Einladung nicht innerhalb dieser Zeit an, musst du eine neue Einladung schicken. Öffentliche Einladungslinks haben kein Ablaufdatum, solange du sie nicht deaktivierst.
Kann ich sehen, wer welchen Build tatsächlich installiert hat?
Ja. In App Store Connect siehst du pro Build und pro Testergruppe, wie viele Sessions, Installationen und Crashes es gab. Auf Testerebene siehst du, ob der Tester die Einladung angenommen hat, welche Build-Version installiert ist und wann die App zuletzt genutzt wurde.
Was passiert, wenn ein TestFlight-Build abläuft?
Nach 90 Tagen wird der Build deaktiviert. Die App bleibt auf den Geräten der Tester installiert, lässt sich aber nicht mehr starten – sie sehen eine Meldung, dass der Beta-Build abgelaufen ist. Du musst einen neuen Build bereitstellen oder den Testern mitteilen, die App zu löschen.
Kostet TestFlight etwas?
TestFlight selbst ist kostenlos und im Apple Developer Program inbegriffen. Du zahlst nur die jährliche Developer-Mitgliedschaft (99 USD/Jahr). Es gibt keine zusätzlichen Kosten pro Tester oder pro Build.