Snapshot (Fastlane) — essentie, schermafbeeldingen genereren en configuratie in mobiele apps

Auteur: IT Sectr Gepubliceerd: 2026-04-15 Leestijd: 10 min

Snapshot (Fastlane) is een hulpmiddel voor het automatisch genereren van schermafbeeldingen van iOS-apps op alle ondersteunde apparaten en talen. In tegenstelling tot het handmatig maken van schermafbeeldingen via de simulator, voert Snapshot UI-tests uit en maakt schermafbeeldingen op specifieke punten in de app. Volgens de officiële Fastlane-documentatie (2026) verkort Snapshot de voorbereidingstijd van schermafbeeldingen voor een release van 4 uur naar 15 minuten.

Belangrijkste punten

  • Snapshot — Fastlane-tool voor het automatisch maken van schermafbeeldingen van iOS-apps via UI-tests op alle apparaten en talen.
  • De tool integreert met XCTest UI-tests: de ontwikkelaar voegt snapshot()-opdrachten toe aan de testcode om afbeeldingen vast te leggen op belangrijke schermen van de app.
  • Snapshot ondersteunt alle iPhone- en iPad-apparaatgroottes die vereist zijn door de App Store: 6.5, 5.5, 6.7, 12.9 inch en andere schermformaten.
  • Configuratie gebeurt via het Snapfile-bestand, waarin apparaten, talen, lokalisatie en simulator-startparameters voor het genereren worden opgegeven.
  • Resultaten worden opgeslagen in de screenshots/-directory, compatibel met Deliver — schermafbeeldingen zijn klaar voor upload naar de App Store zonder verdere verwerking.

Wat is Snapshot (Fastlane)?

Snapshot (Fastlane) is een component van het Fastlane-ecosysteem dat het maken van schermafbeeldingen van apps voor de App Store automatiseert. Het voert UI-tests uit op iOS-simulatoren, maakt schermafbeeldingen in specifieke toestanden van de app en slaat ze op in een gestructureerde directory met correcte namen voor elke taal en elk apparaat.

Zonder Snapshot starten ontwikkelaars handmatig de simulator, openen elk scherm, maken een schermafbeelding met Cmd+S, schakelen de taal en herhalen het proces voor alle combinaties. Automatisering van schermafbeeldingen is een sleutelelement van ASO-optimalisatie, omdat de App Store actuele afbeeldingen vereist voor elke nieuwe release en het handmatig bijwerken van 60+ schermafbeeldingen uren werk kost.

Volgens App Store Connect Documentation (2025) behalen apps met gelokaliseerde schermafbeeldingen 25% meer conversies in doelmarkten. Snapshot stelt teams in staat om visuele inhoud voor 32 talen in één keer bij te werken, wat vooral belangrijk is voor marketingcampagnes die gekoppeld zijn aan nieuwe app-functies.

Gebruik Snapshot in elk project dat in de App Store wordt gepubliceerd — het is een standaardtool voor teams die streven naar automatisering van het releaseproces en verbetering van ASO.

Hoe Snapshot schermafbeeldingen genereert

Het proces van het genereren van schermafbeeldingen in Snapshot bestaat uit verschillende fasen: voorbereiding van UI-tests, configuratie van Snapfile, starten van simulatoren en verzamelen van resultaten. Snapshot start achtereenvolgens elke simulator voor de opgegeven apparaten en talen, voert UI-tests uit en maakt afbeeldingen op de punten waar de functie snapshot() wordt aangeroepen.

Na voltooiing van alle tests verzamelt Snapshot de schermafbeeldingen in de directory screenshots/[Language]/ met namen die voldoen aan de App Store-vereisten. Elke schermafbeelding wordt opgeslagen in PNG-formaat met een resolutie die overeenkomt met het doelapparaat. Snapshot genereert ook een HTML-rapport voor visuele verificatie van alle gemaakte afbeeldingen.

UI-tests instellen voor Snapshot

Voor het werken met Snapshot moeten snapshot()-aanroepen worden toegevoegd aan de XCTest-code van de UI-tests van de app. De functie maakt een schermafbeelding van de huidige schermstatus op het moment van aanroepen. De ontwikkelaar plaatst snapshot() na elke belangrijke actie: het openen van een scherm, het invoeren van gegevens, navigeren door tabbladen of het tonen van resultaten.

Voorbeeld van een UI-teststructuur: de test logt in op de app, roept snapshot("01-LoginScreen") aan voor een schermafbeelding van het inlogscherm, gaat vervolgens naar het hoofdscherm en roept snapshot("02-HomeScreen") aan voor een schermafbeelding van het hoofdscherm. XCTest is het Apple-framework voor unit- en UI-testen van iOS-apps, direct geïntegreerd in Xcode.

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

Werken met talen en apparaten

Snapshot schakelt automatisch de simulatortaal voor elke taal die in Snapfile is opgegeven. De app wordt gestart met de bijbehorende lokalisatie en de UI-tests worden in die taal uitgevoerd. Lokalisatie van schermafbeeldingen is een kritische ASO-factor: gebruikers geven in 75% van de gevallen de voorkeur aan apps met inhoud in hun moedertaal, inclusief schermafbeeldingen in de App Store.

Voor elk apparaat start Snapshot een aparte simulator met de bijbehorende schermdiagonaal. Alle door de App Store vereiste formaten worden ondersteund: iPhone 6.5 inch (iPhone 15 Pro Max), 5.5 inch (iPhone 8 Plus), 6.7 inch (iPhone 15 Plus) en iPad 12.9 inch. iOS-simulator is een software-emulatie van een iOS-apparaat, ingebouwd in Xcode voor het testen van apps zonder fysiek apparaat.

bash
# Schermafbeeldingen genereren voor alle apparaten en talen
fastlane snapshot

# Alleen genereren voor opgegeven apparaten
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"

# Opschonen vóór het genereren van schermafbeeldingen
fastlane snapshot --reinstall_app --erase_simulator

Snapshot configureren via Snapfile

Snapfile is het Fastlane-configuratiebestand dat de parameters voor het genereren van schermafbeeldingen definieert: de lijst met apparaten, talen, wachttijd en startopties. Snapfile wordt opgeslagen in de fastlane-directory en wordt mee-versiebeheerd met het project, wat een uniforme configuratie voor alle teamleden garandeert.

ruby
# Snapfile — configuratie van schermafbeeldingen
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)

De parameter clear_previous_screenshots verwijdert oude schermafbeeldingen voordat het genereren begint — dit voorkomt ophoping van verouderde afbeeldingen in de uitvoermap. reinstall_app herinstalleert de app op de simulator voor elke start, wat een schone sessie garandeert zonder invloed van eerdere tests op de nieuwe generatie.

De parameter erase_simulator wist de inhoud van de simulator vóór het starten van de tests — inclusief cache, instellingen en gegevens van eerdere sessies. Dit is vooral belangrijk voor tests die de onboarding of eerste start van de app controleren. Snapshot ondersteunt ook de parameters ios_version voor het opgeven van de iOS-versie op de simulator en stop_after_first_error voor het stoppen van de generatie bij de eerste UI-testfout.

Voor projecten met SwiftUI is de parameter use_simulator_for_language beschikbaar, die het schakelen van taal via simulatorinstellingen beheert in plaats van het wijzigen van de systeemregio. Snapshot ondersteunt ook launch_arguments voor het doorgeven van extra argumenten bij het starten van de app — handig voor tests met verschillende backend-configuraties of A/B-tests.

Snapshot-commando's voor het genereren van afbeeldingen

De Snapshot-interface bevat basiscommando's voor het starten van de generatie en geavanceerde vlaggen voor nauwkeurige controle over het proces. Het hoofdcommando fastlane snapshot start de volledige cyclus voor het genereren van schermafbeeldingen op basis van de configuratie uit Snapfile.

Snel genereren en filteren

Het commando fastlane snapshot --devices "iPhone 15" genereert schermafbeeldingen alleen voor de opgegeven apparaten, waarbij de rest uit Snapfile wordt genegeerd. --languages "en-US,ru" filtert de talen voor generatie. De combinatie van deze vlaggen is handig voor het snel controleren van schermafbeeldingen op één apparaat en taal zonder de volledige generatiecyclus, die tot 30 minuten kan duren voor 5 apparaten en 10 talen.

bash
# Snel genereren voor één apparaat
fastlane snapshot --devices "iPhone 15" --languages "en-US"

# Genereren met herinstallatie van de app
fastlane snapshot --reinstall_app --erase_simulator

# Genereren met HTML-rapport
fastlane snapshot --output_directory "./build/screenshots"

De vlag --output_directory wijzigt de directory voor het opslaan van resultaten. Standaard slaat Snapshot schermafbeeldingen op in fastlane/screenshots. Voor integratie met Deliver geeft u een directory op die overeenkomt met de verwachte Deliverfile-structuur — dit maakt directe overdracht van schermafbeeldingen naar het publicatieproces mogelijk zonder handmatig kopiëren van bestanden tussen mappen.

Snapshot-parameterDoelVoorbeeld
devicesLijst met apparaten voor generatieiPhone 15, iPad Pro
languagesLijst met lokalisatietalenen-US, ru, de-DE
reinstall_appApp opnieuw installeren vóór teststrue / false
erase_simulatorSimulator wissen vóór startentrue / false
clear_previousOude schermafbeeldingen verwijderentrue / false

Snapshot integreren in CI/CD-pipeline

Snapshot in CI/CD is het automatisch genereren van schermafbeeldingen bij elke release-commit. Snapshot wordt gestart vóór de Deliver-fase om te garanderen dat de schermafbeeldingen in de App Store overeenkomen met de huidige versie van de app en geen verouderde interface-elementen van eerdere versies bevatten.

Voor Snapshot in CI is Xcode met geïnstalleerde iOS-simulatoren vereist. In de CI-omgeving gebruikt Snapshot de simulatoren uit Xcode die vooraf op de runner worden geladen. GitHub Actions biedt images met vooraf geïnstalleerde Xcode en iOS-simulatoren voor het uitvoeren van UI-tests zonder extra configuratie.

bash
# Snapshot starten in CI-omgeving
fastlane snapshot --skip_open_summary \

      --output_directory "$CI_PROJECT_DIR/screenshots"

# Schermafbeeldingen opslaan als CI-artefacten
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"

De parameter --skip_open_summary schakelt het openen van het HTML-rapport na generatie uit — in een CI-omgeving is de grafische interface niet beschikbaar. De generatieresultaten worden opgeslagen in een directory die wordt doorgegeven als artefact van de CI-taak en vervolgens door Deliver wordt gebruikt voor upload naar de App Store samen met de release.

Om de CI-pipeline te versnellen, gebruikt u parallelle generatie van schermafbeeldingen via concurrent_simulators — een Snapfile-parameter die meerdere simulatoren tegelijk start. Dit verkort de generatietijd van schermafbeeldingen voor 5 apparaten en 10 talen van 40 minuten naar 15 minuten bij gebruik van 4 parallelle threads.

Veelvoorkomende fouten bij het werken met Snapshot

Bij het gebruik van Snapshot komen ontwikkelaars het vaakst fouten tegen die verband houden met instabiliteit van UI-tests, simulatorproblemen en onjuiste apparaatconfiguratie. Foutdiagnose bij Snapshot begint met analyse van het HTML-rapport, dat schermafbeeldingen van elke stap en informatie over mislukte tests bevat.

De fout «Failed to build scheme MyAppUITests» treedt op wanneer het schema voor UI-tests niet is geconfigureerd voor bouwen. Oplossing: zorg ervoor dat in Xcode een apart Scheme voor UI-tests is gemaakt en dat de optie Shared is ingeschakeld voor toegang vanaf de opdrachtregel. Xcode Scheme is een configuratie voor het bouwen, testen en starten van de app die de set doelen en parameters voor elke actie definieert.

De fout «No simulators found matching...» geeft aan dat er geen simulator is met het opgegeven apparaattype of iOS-versie. Oplossing: voer xcrun simctl create uit om een simulator te maken of geef een bestaand apparaat op uit de lijst xcrun simctl list. xcrun simctl is de Xcode-opdrachtregeltool voor het beheren van iOS-simulatoren: maken, verwijderen, starten en diagnosticeren.

Bij de fout «UI test failure» slaagt de UI-test niet in een van de talen of apparaten. Oplossing: start Snapshot met de vlag --stop_after_first_error om te stoppen bij de eerste fout, analyseer de schermafbeelding in het HTML-rapport en corrigeer de test. Een veelvoorkomende oorzaak is de verschillende tekstlengte in verschillende talen, waardoor interface-elementen overlappen of buiten de schermgrenzen vallen.

Veelgestelde vragen

Welke iOS-apparaten ondersteunt Snapshot?

Snapshot ondersteunt alle apparaten uit de iPhone- en iPad-familie, waaronder iPhone 15 Pro Max (6.7 inch), iPhone 15 (6.1 inch), iPad Pro 12.9 inch en iPad mini. Voor elk apparaat laadt Snapshot de bijbehorende simulator-skins uit Xcode, wat de exacte schermresolutie garandeert.

Zijn er echte apparaten nodig voor Snapshot?

Nee, Snapshot werkt uitsluitend met iOS-simulatoren uit Xcode. Echte apparaten zijn niet vereist en worden niet ondersteund — alle schermafbeeldingen worden gegenereerd in de simulatoromgeving, die identieke resolutie en kleurweergave biedt voor de App Store-vereisten.

Hoe gaat Snapshot om met lokalisatie van tekst in schermafbeeldingen?

Snapshot schakelt de simulatortaal voordat de UI-tests worden gestart voor elke taal uit Snapfile. De app wordt weergegeven in de bijbehorende taal via de systeemlokalisatie-instellingen. UI-tests gebruiken gelokaliseerde strings via NSLocalizedString, wat correcte tekst op alle schermafbeeldingen garandeert.

Kunnen schermafbeeldingen worden gegenereerd voor macOS-apps?

Ja, Snapshot ondersteunt macOS-apps vanaf Fastlane versie 2.200. Geef voor macOS het platform op in Snapfile via de parameter app_platform("macOS"). Snapshot voert UI-tests uit op macOS en maakt schermafbeeldingen volgens de vereisten van de Mac App Store.

Waarin verschilt Snapshot van een gewone schermafbeelding met Cmd+S?

Een handmatige schermafbeelding vereist het handmatig openen van elk scherm, het wijzigen van de taal en het wijzigen van het apparaat — ongeveer 60 handelingen voor een volledige set. Snapshot automatiseert het hele proces: het wisselt talen en apparaten, voert UI-tests uit en slaat schermafbeeldingen op met correcte namen voor de App Store in 15 minuten.

Samenvatting

  • Snapshot — Fastlane-tool voor het automatisch genereren van schermafbeeldingen van iOS-apps via XCTest UI-tests op alle apparaten en talen.
  • De ontwikkelaar voegt snapshot()-aanroepen toe aan de UI-testcode op belangrijke punten in de app — Snapshot maakt afbeeldingen op deze plaatsen.
  • Configuratie via Snapfile definieert de lijst met apparaten, talen en simulatorparameters: devices, languages, reinstall_app en erase_simulator.
  • Resultaten worden opgeslagen in de directory screenshots/[Language]/ in een formaat dat compatibel is met Deliver voor directe upload naar de App Store.
  • Integratie in CI/CD maakt automatisch genereren van verse schermafbeeldingen vóór elke release mogelijk met parallelle simulatoren om het proces te versnellen.
  • Veelvoorkomende Snapshot-fouten hebben betrekking op instabiele UI-tests in verschillende talen, ontbrekende simulatoren in Xcode of onjuiste configuratie van het Scheme.

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.

Bespreek het project

Lees ook