Snapshot (Fastlane) ist ein Tool zur automatischen Generierung von Bildschirmfotos von iOS-Apps auf allen unterstützten Geräten und Sprachen. Im Gegensatz zur manuellen Erstellung von Bildschirmfotos über den Simulator führt Snapshot UI-Tests aus und macht Aufnahmen an bestimmten Punkten der App. Laut der offiziellen Fastlane-Dokumentation (2026) reduziert Snapshot die Zeit für die Vorbereitung von Bildschirmfotos für die Veröffentlichung von 4 Stunden auf 15 Minuten.
Wichtige Punkte
Snapshot (Fastlane) ist eine Komponente des Fastlane-Ökosystems, die die Erstellung von App-Bildschirmfotos für den App Store automatisiert. Es führt UI-Tests auf iOS-Simulatoren aus, macht Aufnahmen in bestimmten App-Zuständen und speichert sie in einem strukturierten Verzeichnis mit korrekten Namen für jede Sprache und jedes Gerät.
Ohne Snapshot starten Entwickler den Simulator manuell, öffnen jeden Bildschirm, machen ein Bildschirmfoto mit Cmd+S, wechseln die Sprache und wiederholen den Vorgang für alle Kombinationen. Die Automatisierung von Bildschirmfotos ist ein Schlüsselelement der ASO-Optimierung, da der App Store für jede neue Version aktuelle Aufnahmen verlangt und die manuelle Aktualisierung von über 60 Bildschirmfotos Stunden Arbeit erfordert.
Laut der App Store Connect Dokumentation (2025) erzielen Apps mit lokalisierten Bildschirmfotos 25% mehr Konversionen in den Zielländern. Snapshot ermöglicht es Teams, visuelle Inhalte für 32 Sprachen in einem Durchlauf zu aktualisieren, was besonders für Marketingkampagnen im Zusammenhang mit neuen App-Funktionen wichtig ist.
Verwenden Sie Snapshot in jedem Projekt, das im App Store veröffentlicht wird — es ist das Standardwerkzeug für Teams, die den Veröffentlichungsprozess automatisieren und ASO verbessern möchten.
Der Prozess der Bildschirmfoto-Generierung in Snapshot besteht aus mehreren Phasen: Vorbereitung der UI-Tests, Konfiguration der Snapfile, Start der Simulatoren und Sammlung der Ergebnisse. Snapshot startet nacheinander jeden Simulator für die angegebenen Geräte und Sprachen, führt UI-Tests aus und macht Aufnahmen an den Stellen, an denen die Funktion snapshot() aufgerufen wird.
Nach Abschluss aller Tests sammelt Snapshot die Bildschirmfotos im Verzeichnis screenshots/[Language]/ mit Namen, die den App Store-Anforderungen entsprechen. Jedes Bildschirmfoto wird im PNG-Format mit einer Auflösung gespeichert, die dem Zielgerät entspricht. Snapshot generiert außerdem einen HTML-Bericht zur visuellen Überprüfung aller erstellten Aufnahmen.
Damit Snapshot funktioniert, müssen snapshot()-Aufrufe zum XCTest-UI-Testcode der App hinzugefügt werden. Die Funktion macht ein Bildschirmfoto des aktuellen Bildschirmzustands zum Zeitpunkt des Aufrufs. Der Entwickler platziert snapshot() nach jeder Schlüsselaktion: Öffnen eines Bildschirms, Eingabe von Daten, Navigation durch Tabs oder Anzeigen von Ergebnissen.
Beispiel einer UI-Teststruktur: Der Test meldet sich in der App an, ruft snapshot("01-LoginScreen") auf, um den Anmeldebildschirm zu erfassen, navigiert dann zum Startbildschirm und ruft snapshot("02-HomeScreen") auf, um den Startbildschirm zu erfassen. XCTest ist das Apple-Framework für Komponenten- und UI-Tests von iOS-Apps, das direkt in Xcode integriert ist.
// UI-Test für Snapshot
- (void)testScreenshots {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
snapshot(@"01-LoginScreen");
[app.textFields[@"email"] tap];
[app.textFields[@"email"] typeText:@"user@company.com"];
[app.buttons[@"Login"] tap];
snapshot(@"02-HomeScreen");
}
Snapshot wechselt automatisch die Simulatorsprache für jede in der Snapfile angegebene Sprache. Die App wird mit der entsprechenden Lokalisierung gestartet und die UI-Tests werden in dieser Sprache ausgeführt. Die Lokalisierung von Bildschirmfotos ist ein kritischer ASO-Faktor: In 75% der Fälle bevorzugen Benutzer Apps mit Inhalten in ihrer Muttersprache, einschließlich der Bildschirmfotos im App Store.
Für jedes Gerät startet Snapshot einen separaten Simulator mit der entsprechenden Bildschirmdiagonale. Alle vom App Store geforderten Größen werden unterstützt: iPhone 6,5 Zoll (iPhone 15 Pro Max), 5,5 Zoll (iPhone 8 Plus), 6,7 Zoll (iPhone 15 Plus) und iPad 12,9 Zoll. Der iOS-Simulator ist eine Software-Emulation eines iOS-Geräts, die in Xcode integriert ist, um Apps ohne physisches Gerät zu testen.
# Bildschirmfotos für alle Geräte und Sprachen generieren
fastlane snapshot
# Nur für angegebene Geräte generieren
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"
# Vor der Bildschirmfoto-Generierung löschen
fastlane snapshot --reinstall_app --erase_simulator
Snapfile ist eine Fastlane-Konfigurationsdatei, die die Parameter der Bildschirmfoto-Generierung definiert: Geräteliste, Sprachen, Timeout und Startoptionen. Die Snapfile wird im Verzeichnis fastlane gespeichert und zusammen mit dem Projekt versioniert, was eine einheitliche Konfiguration für alle Teammitglieder gewährleistet.
# Snapfile — Bildschirmfoto-Konfiguration
devices([
"iPhone 15 Pro Max",
"iPhone 15",
"iPad Pro (12.9-inch)"
])
languages([
"en-US",
"ru",
"de-DE"
])
scheme("MyAppUITests")
output_directory("./screenshots")
clear_previous_screenshots(true)
reinstall_app(true)
erase_simulator(true)
Der Parameter clear_previous_screenshots löscht alte Bildschirmfotos vor Beginn der Generierung — dies verhindert die Ansammlung veralteter Aufnahmen im Ausgabeverzeichnis. reinstall_app installiert die App vor jedem Durchlauf neu auf dem Simulator, was eine saubere Sitzung ohne Beeinflussung durch vorherige Tests gewährleistet.
Der Parameter erase_simulator löscht den Inhalt des Simulators vor Beginn der Tests — einschließlich Cache, Einstellungen und Daten vorheriger Sitzungen. Dies ist besonders wichtig für Tests, die das Onboarding oder den ersten Start der App überprüfen. Snapshot unterstützt auch die Parameter ios_version zur Angabe der iOS-Version auf dem Simulator und stop_after_first_error zum Stoppen der Generierung beim ersten UI-Testfehler.
Für SwiftUI-Projekte steht der Parameter use_simulator_for_language zur Verfügung, der das Sprachwechseln über die Simulatoreinstellungen anstatt über die Systemregion steuert. Snapshot unterstützt auch launch_arguments zum Übergeben zusätzlicher Argumente beim Start der App — nützlich für Tests mit verschiedenen Backend-Konfigurationen oder A/B-Tests.
Die Snapshot-Schnittstelle umfasst Basisbefehle zum Starten der Generierung und erweiterte Flags zur präzisen Steuerung des Prozesses. Der Hauptbefehl fastlane snapshot führt den vollständigen Generierungszyklus basierend auf der Snapfile-Konfiguration aus.
Der Befehl fastlane snapshot --devices "iPhone 15" generiert Bildschirmfotos nur für die angegebenen Geräte und ignoriert die restlichen aus der Snapfile. --languages "en-US,ru" filtert die Sprachen für die Generierung. Die Kombination dieser Flags ist nützlich für eine schnelle Überprüfung von Bildschirmfotos auf einem Gerät und einer Sprache ohne vollständigen Generierungszyklus, der bei 5 Geräten und 10 Sprachen bis zu 30 Minuten dauern kann.
# Schnelle Generierung für ein Gerät
fastlane snapshot --devices "iPhone 15" --languages "en-US"
# Mit App-Neuinstallation generieren
fastlane snapshot --reinstall_app --erase_simulator
# Mit HTML-Bericht generieren
fastlane snapshot --output_directory "./build/screenshots"
Das Flag --output_directory ändert das Speicherverzeichnis der Ergebnisse. Standardmäßig speichert Snapshot Bildschirmfotos in fastlane/screenshots. Für die Integration mit Deliver geben Sie ein Verzeichnis an, das der erwarteten Deliverfile-Struktur entspricht — dies ermöglicht die direkte Übergabe der Bildschirmfotos an den Veröffentlichungsprozess ohne manuelles Kopieren zwischen Ordnern.
| Snapshot-Parameter | Zweck | Beispiel |
|---|---|---|
| devices | Liste der Geräte für die Generierung | iPhone 15, iPad Pro |
| languages | Liste der Lokalisierungssprachen | en-US, ru, de-DE |
| reinstall_app | App vor Tests neu installieren | true / false |
| erase_simulator | Simulator vor Start löschen | true / false |
| clear_previous | Alte Bildschirmfotos löschen | true / false |
Snapshot in CI/CD ist die automatische Generierung von Bildschirmfotos bei jedem Release-Commit. Snapshot wird vor der Deliver-Phase ausgeführt, um sicherzustellen, dass die Bildschirmfotos im App Store der aktuellen App-Version entsprechen und keine veralteten UI-Elemente aus früheren Versionen enthalten.
Damit Snapshot in CI funktioniert, wird Xcode mit installierten iOS-Simulatoren benötigt. In CI-Umgebungen verwendet Snapshot Simulatoren aus Xcode, die auf dem Runner vorinstalliert sind. GitHub Actions stellt Images mit vorinstalliertem Xcode und iOS-Simulatoren zur Ausführung von UI-Tests ohne zusätzliche Einrichtung bereit.
# Snapshot in CI-Umgebung ausführen
fastlane snapshot --skip_open_summary \
--output_directory "$CI_PROJECT_DIR/screenshots"
# Bildschirmfotos als CI-Artefakte speichern
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"
Der Parameter --skip_open_summary deaktiviert das Öffnen des HTML-Berichts nach der Generierung — in CI-Umgebungen ist die grafische Oberfläche nicht verfügbar. Die Generierungsergebnisse werden in einem Verzeichnis gespeichert, das als CI-Task-Artefakt übergeben und dann von Deliver zusammen mit dem Release in den App Store hochgeladen wird.
Um die CI-Pipeline zu beschleunigen, verwenden Sie die parallele Bildschirmfoto-Generierung über concurrent_simulators — einen Snapfile-Parameter, der mehrere Simulatoren gleichzeitig startet. Dies reduziert die Generierungszeit für 5 Geräte und 10 Sprachen von 40 Minuten auf 15 Minuten bei Verwendung von 4 parallelen Threads.
Bei der Verwendung von Snapshot stoßen Entwickler am häufigsten auf Fehler im Zusammenhang mit UI-Test-Instabilität, Simulatorproblemen und falscher Gerätekonfiguration. Die Fehlerdiagnose von Snapshot beginnt mit der Analyse des HTML-Berichts, der Bildschirmfotos jedes Schritts und Informationen über fehlgeschlagene Tests enthält.
Der Fehler „Failed to build scheme MyAppUITests“ tritt auf, wenn das UI-Test-Schema nicht für die Erstellung konfiguriert ist. Lösung: Stellen Sie sicher, dass in Xcode ein separates Scheme für UI-Tests erstellt wurde und die Shared-Option für den Zugriff über die Befehlszeile aktiviert ist. Xcode Scheme ist eine Build-, Test- und Run-Konfiguration der App, die die Ziele und Parameter für jede Aktion definiert.
Der Fehler „No simulators found matching...“ zeigt an, dass kein Simulator mit dem angegebenen Gerätetyp oder der iOS-Version vorhanden ist. Lösung: Führen Sie xcrun simctl create aus, um einen Simulator zu erstellen, oder geben Sie ein vorhandenes Gerät aus der Liste xcrun simctl list an. xcrun simctl ist ein Xcode-Befehlszeilentool zur Verwaltung von iOS-Simulatoren: Erstellen, Löschen, Starten und Diagnose.
Beim Fehler „UI test failure“ schlägt der UI-Test in einer der Sprachen oder auf einem der Geräte fehl. Lösung: Führen Sie Snapshot mit dem Flag --stop_after_first_error aus, um beim ersten Fehler anzuhalten, analysieren Sie das Bildschirmfoto im HTML-Bericht und korrigieren Sie den Test. Eine häufige Ursache ist die unterschiedliche Textlänge in verschiedenen Sprachen, wodurch UI-Elemente überlappen oder über die Bildschirmgrenzen hinausragen.
Häufig gestellte Fragen
Snapshot unterstützt alle Geräte der iPhone- und iPad-Familie, einschließlich iPhone 15 Pro Max (6,7 Zoll), iPhone 15 (6,1 Zoll), iPad Pro 12,9 Zoll und iPad mini. Für jedes Gerät lädt Snapshot die entsprechenden Simulator-Skins aus Xcode, was eine genaue Bildschirmauflösung gewährleistet.
Nein, Snapshot arbeitet ausschließlich mit iOS-Simulatoren aus Xcode. Physische Geräte werden nicht benötigt und nicht unterstützt — alle Bildschirmfotos werden in der Simulatorumgebung generiert, die für die App Store-Anforderungen identische Auflösung und Farbwiedergabe bietet.
Snapshot wechselt die Simulatorsprache vor der Ausführung der UI-Tests für jede in der Snapfile angegebene Sprache. Die App wird über die Systemlokalisierungseinstellungen in der entsprechenden Sprache angezeigt. Die UI-Tests verwenden lokalisierte Strings über NSLocalizedString, was korrekten Text auf allen Bildschirmfotos gewährleistet.
Ja, Snapshot unterstützt macOS-Apps ab Fastlane Version 2.200. Für macOS geben Sie die Plattform in der Snapfile über den Parameter app_platform("macOS") an. Snapshot führt UI-Tests auf macOS aus und erstellt Bildschirmfotos gemäß den Anforderungen des Mac App Store.
Ein manuelles Bildschirmfoto erfordert das manuelle Öffnen jedes Bildschirms, Sprachwechsel, Gerätewechsel — etwa 60 Aktionen für einen vollständigen Satz. Snapshot automatisiert den gesamten Prozess: Es wechselt Sprachen, Geräte, führt UI-Tests aus und speichert Bildschirmfotos mit korrekten Namen für den App Store in 15 Minuten.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch