Snapshot (Fastlane) — Wesen, Bildschirmfoto-Generierung und Einrichtung in mobilen Apps

Autor: IT Sectr Veröffentlicht: 2026-04-15 Lesezeit: 10 Min.

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 ist ein Fastlane-Dienstprogramm zur automatischen Erstellung von Bildschirmfotos von iOS-Apps durch UI-Tests auf allen Geräten und Sprachen.
  • Das Tool integriert sich mit XCTest UI-Tests: Der Entwickler fügt snapshot()-Befehle in den Testcode ein, um Aufnahmen auf den wichtigsten Bildschirmen der App zu erfassen.
  • Snapshot unterstützt alle vom App Store geforderten iPhone- und iPad-Gerätegrößen: 6.5, 5.5, 6.7, 12.9 Zoll und andere Bildschirmformate.
  • Die Konfiguration erfolgt über die Datei Snapfile, in der Geräte, Sprachen, Lokalisierung und Startparameter des Simulators für die Generierung angegeben werden.
  • Die Ergebnisse werden im Verzeichnis screenshots/ gespeichert, das mit Deliver kompatibel ist — die Bildschirmfotos sind ohne zusätzliche Verarbeitung für den Upload in den App Store bereit.

Was ist Snapshot (Fastlane)?

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.

Wie Snapshot Bildschirmfotos generiert

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.

Einrichtung von UI-Tests für Snapshot

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.

objective-c
// 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");
}

Arbeiten mit Sprachen und Geräten

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.

bash
# 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

Snapshot-Konfiguration über Snapfile

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.

ruby
# 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.

Snapshot-Befehle zur Generierung von Aufnahmen

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.

Schnelle Generierung und Filterung

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.

bash
# 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-ParameterZweckBeispiel
devicesListe der Geräte für die GenerierungiPhone 15, iPad Pro
languagesListe der Lokalisierungssprachenen-US, ru, de-DE
reinstall_appApp vor Tests neu installierentrue / false
erase_simulatorSimulator vor Start löschentrue / false
clear_previousAlte Bildschirmfotos löschentrue / false

Integration von Snapshot in die CI/CD-Pipeline

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.

bash
# 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.

Häufige Fehler bei der Arbeit mit Snapshot

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

Welche iOS-Geräte unterstützt Snapshot?

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.

Sind physische Geräte für Snapshot erforderlich?

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.

Wie behandelt Snapshot die Textlokalisierung in Bildschirmfotos?

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.

Können Bildschirmfotos für macOS-Apps generiert werden?

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.

Was ist der Unterschied zwischen Snapshot und einem normalen Bildschirmfoto mit Cmd+S?

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

  • Snapshot ist ein Fastlane-Dienstprogramm zur automatischen Generierung von Bildschirmfotos von iOS-Apps durch XCTest-UI-Tests auf allen Geräten und Sprachen.
  • Der Entwickler fügt snapshot()-Aufrufe in den UI-Testcode an Schlüsselstellen der App ein — Snapshot macht an diesen Stellen Bildschirmfotos.
  • Die Konfiguration über die Snapfile definiert die Liste der Geräte, Sprachen und Simulatorparameter: devices, languages, reinstall_app und erase_simulator.
  • Die Ergebnisse werden im Verzeichnis screenshots/[Language]/ in einem mit Deliver kompatiblen Format für den direkten Upload in den App Store gespeichert.
  • Die CI/CD-Integration ermöglicht die automatische Generierung aktueller Bildschirmfotos vor jeder Veröffentlichung mit parallelen Simulatoren zur Beschleunigung des Prozesses.
  • Häufige Snapshot-Fehler stehen im Zusammenhang mit instabilen UI-Tests in verschiedenen Sprachen, fehlenden Simulatoren in Xcode oder falscher Scheme-Konfiguration.

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.

Projekt besprechen

Lesen Sie auch