A Snapshot (Fastlane) egy eszköz iOS-alkalmazások képernyőképeinek automatikus generálásához az összes támogatott eszközön és nyelven. Ellentétben a képernyőképek manuális létrehozásával a szimulátoron keresztül, a Snapshot UI-teszteket futtat, és az alkalmazás meghatározott pontjain készít képernyőképeket. A Fastlane hivatalos dokumentációja (2026) szerint a Snapshot a képernyőképek kiadásra való előkészítési idejét 4 óráról 15 percre csökkenti.
Főbb pontok
Snapshot (Fastlane) a Fastlane ökoszisztéma egyik összetevője, amely automatizálja az alkalmazás képernyőképeinek létrehozását az App Store-hoz. UI-teszteket futtat iOS szimulátorokon, képernyőképeket készít az alkalmazás meghatározott állapotaiban, és strukturált könyvtárba menti azokat a megfelelő nevekkel minden nyelv és eszköz számára.
Snapshot nélkül a fejlesztők manuálisan indítják a szimulátort, megnyitják az egyes képernyőket, képernyőképet készítenek a Cmd+S segítségével, váltják a nyelvet, és megismétlik a folyamatot az összes kombinációra. A képernyőképek automatizálása az ASO-optimalizálás kulcseleme, mivel az App Store minden új kiadáshoz friss képeket követel meg, és a 60+ képernyőkép manuális frissítése órákba telik.
A App Store Connect Documentation (2025) szerint a lokalizált képernyőképekkel rendelkező alkalmazások 25%-kal több konverziót érnek el a célországokban. A Snapshot lehetővé teszi a csapatok számára, hogy egyetlen futtatással frissítsék a vizuális tartalmat 32 nyelvre, ami különösen fontos az alkalmazás új funkcióihoz kapcsolódó marketingkampányok esetén.
Használja a Snapshot-ot minden olyan projektben, amely az App Store-ban jelenik meg — ez egy szabványos eszköz azoknak a csapatoknak, amelyek a kiadási folyamat automatizálására és az ASO javítására törekednek.
A képernyőképek generálásának folyamata a Snapshot-ban több szakaszból áll: UI-tesztek előkészítése, Snapfile konfigurálása, szimulátorok indítása és eredmények összegyűjtése. A Snapshot egymás után elindítja az egyes szimulátorokat a megadott eszközökhöz és nyelvekhez, végrehajtja az UI-teszteket, és a snapshot() függvény hívásának pontjain képeket készít.
Az összes teszt befejezése után a Snapshot összegyűjti a képernyőképeket a screenshots/[Language]/ könyvtárba az App Store követelményeinek megfelelő nevekkel. Minden képernyőkép PNG formátumban kerül mentésre a cél-eszköznek megfelelő felbontással. A Snapshot HTML-jelentést is készít az összes létrehozott kép vizuális ellenőrzéséhez.
A Snapshot működéséhez snapshot() hívásokat kell hozzáadni az alkalmazás XCTest UI-tesztkódjához. A függvény képernyőképet készít a képernyő aktuális állapotáról a hívás pillanatában. A fejlesztő a snapshot()-t minden kulcsfontosságú művelet után helyezi el: képernyő megnyitása, adatok bevitele, lapok közötti navigáció vagy eredmények megjelenítése.
Példa UI-teszt szerkezetére: a teszt belép az alkalmazásba, meghívja a snapshot("01-LoginScreen")-t a bejelentkezési képernyő képéhez, majd átmegy a főképernyőre és meghívja a snapshot("02-HomeScreen")-t a főképernyő képéhez. XCTest az Apple keretrendszere iOS-alkalmazások egység- és UI-teszteléséhez, közvetlenül integrálva az Xcode-ba.
// UI-teszt a Snapshot-hoz
- (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");
}
A Snapshot automatikusan váltja a szimulátor nyelvét a Snapfile-ban megadott minden nyelvhez. Az alkalmazás a megfelelő lokalizációval indul, és az UI-tesztek az adott nyelven futnak. A képernyőképek lokalizációja kritikus ASO-tényező: a felhasználók 75%-ban előnyben részesítik az anyanyelvükön elérhető tartalommal rendelkező alkalmazásokat, beleértve az App Store-ban lévő képernyőképeket is.
Minden eszközhöz a Snapshot egy külön szimulátort indít a megfelelő képernyőátlóval. Az App Store által megkövetelt összes méret támogatott: iPhone 6.5 hüvelyk (iPhone 15 Pro Max), 5.5 hüvelyk (iPhone 8 Plus), 6.7 hüvelyk (iPhone 15 Plus) és iPad 12.9 hüvelyk. iOS-szimulátor egy iOS-eszköz szoftveres emulációja, amely az Xcode-ba van beépítve az alkalmazások fizikai eszköz nélküli teszteléséhez.
# Képernyőképek generálása az összes eszközhöz és nyelvhez
fastlane snapshot
# Generálás csak a megadott eszközökhöz
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"
# Tisztítás a képernyőképek generálása előtt
fastlane snapshot --reinstall_app --erase_simulator
Snapfile a Fastlane konfigurációs fájlja, amely meghatározza a képernyőképek generálásának paramétereit: eszközök listája, nyelvek, várakozási idő és indítási opciók. A Snapfile a fastlane könyvtárban tárolódik és verziókezelve van a projekttel együtt, ami egységes konfigurációt garantál a csapat összes tagja számára.
# Snapfile — képernyőképek konfigurációja
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)
A clear_previous_screenshots paraméter törli a régi képernyőképeket a generálás megkezdése előtt — ez megakadályozza az elavult képek felhalmozódását a kimeneti könyvtárban. A reinstall_app újratelepíti az alkalmazást a szimulátorra minden indítás előtt, ami tiszta munkamenetet garantál az előző tesztek új generálásra gyakorolt hatása nélkül.
A erase_simulator paraméter kitörli a szimulátor tartalmát a tesztek megkezdése előtt — beleértve a gyorsítótárat, beállításokat és az előző munkamenetek adatait. Ez különösen fontos az alkalmazás onboarding-ját vagy első indítását ellenőrző teszteknél. A Snapshot támogatja továbbá az ios_version paramétert az iOS verzió megadásához a szimulátoron és a stop_after_first_error paramétert a generálás leállításához az első UI-teszt hiba esetén.
A SwiftUI projektekhez elérhető a use_simulator_for_language paraméter, amely a nyelvváltást a szimulátor beállításain keresztül kezeli a rendszer régiójának megváltoztatása helyett. A Snapshot támogatja továbbá a launch_arguments paramétert további argumentumok átadásához az alkalmazás indításakor — hasznos különböző backend-konfigurációjú vagy A/B tesztekhez.
A Snapshot interfésze tartalmaz alapvető parancsokat a generálás elindításához és fejlett zászlókat a folyamat pontos vezérléséhez. A fő parancs fastlane snapshot elindítja a képernyőképek teljes generálási ciklusát a Snapfile konfigurációja alapján.
A fastlane snapshot --devices "iPhone 15" parancs csak a megadott eszközökhöz generál képernyőképeket, figyelmen kívül hagyva a többit a Snapfile-ból. A --languages "en-US,ru" szűri a nyelveket a generáláshoz. E zászlók kombinációja hasznos a képernyőképek gyors ellenőrzéséhez egyetlen eszközön és nyelven a teljes generálási ciklus nélkül, amely 5 eszköz és 10 nyelv esetén akár 30 percig is tarthat.
# Gyors generálás egy eszközhöz
fastlane snapshot --devices "iPhone 15" --languages "en-US"
# Generálás az alkalmazás újratelepítésével
fastlane snapshot --reinstall_app --erase_simulator
# Generálás HTML-jelentéssel
fastlane snapshot --output_directory "./build/screenshots"
A --output_directory zászló megváltoztatja az eredmények mentési könyvtárát. Alapértelmezés szerint a Snapshot a fastlane/screenshots könyvtárba menti a képernyőképeket. A Deliver-rel való integrációhoz adjon meg egy könyvtárat, amely megegyezik a Deliverfile várt struktúrájával — ez lehetővé teszi a képernyőképek közvetlen átvitelét a publikálási folyamatba a fájlok manuális másolása nélkül a mappák között.
| Snapshot paraméter | Rendeltetés | Példa |
|---|---|---|
| devices | Generáláshoz használt eszközök listája | iPhone 15, iPad Pro |
| languages | Lokalizációs nyelvek listája | en-US, ru, de-DE |
| reinstall_app | Alkalmazás újratelepítése a tesztek előtt | true / false |
| erase_simulator | Szimulátor törlése indítás előtt | true / false |
| clear_previous | Régi képernyőképek törlése | true / false |
Snapshot CI/CD-ben a képernyőképek automatikus generálása minden kiadási commit-nél. A Snapshot a Deliver szakasz előtt fut, hogy garantálja, hogy az App Store-ban lévő képernyőképek megfelelnek az alkalmazás aktuális verziójának, és nem tartalmaznak elavult felületelemeket a korábbi verziókból.
A Snapshot CI-ben való működéséhez Xcode szükséges telepített iOS szimulátorokkal. CI környezetben a Snapshot az Xcode-ból származó szimulátorokat használja, amelyek előre be vannak töltve a runner-re. A GitHub Actions olyan image-eket biztosít, amelyek előre telepített Xcode-dal és iOS szimulátorokkal rendelkeznek az UI-tesztek további konfiguráció nélküli futtatásához.
# Snapshot futtatása CI környezetben
fastlane snapshot --skip_open_summary \
--output_directory "$CI_PROJECT_DIR/screenshots"
# Képernyőképek mentése CI artefaktumokként
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"
A --skip_open_summary paraméter kikapcsolja a HTML-jelentés megnyitását a generálás után — CI környezetben a grafikus felület nem érhető el. A generálás eredményei egy könyvtárba kerülnek mentésre, amely a CI-feladat artefaktumaként kerül továbbításra, majd a Deliver használja az App Store-ba való feltöltéshez a kiadással együtt.
A CI pipeline felgyorsításához használja a képernyőképek párhuzamos generálását a concurrent_simulators segítségével — egy Snapfile paraméter, amely egyszerre több szimulátort indít el. Ez 4 párhuzamos szál használata esetén 5 eszköz és 10 nyelv képernyőkép-generálási idejét 40 percről 15 percre csökkenti.
A Snapshot használatakor a fejlesztők leggyakrabban az UI-tesztek instabilitásával, szimulátorproblémákkal és az eszközök helytelen konfigurációjával kapcsolatos hibákkal találkoznak. A hibák diagnosztizálása a Snapshot esetében a HTML-jelentés elemzésével kezdődik, amely minden lépés képernyőképét és információt tartalmaz a sikertelen tesztekről.
A «Failed to build scheme MyAppUITests» hiba akkor fordul elő, amikor az UI-tesztek sémája nincs konfigurálva az építéshez. Megoldás: győződjön meg arról, hogy az Xcode-ban létrehozott egy külön Scheme-t az UI-tesztekhez, és a Shared opció be van kapcsolva a parancssori hozzáféréshez. Xcode Scheme az alkalmazás építésének, tesztelésének és indításának konfigurációja, amely meghatározza a célok és paraméterek halmazát minden egyes művelethez.
A «No simulators found matching...» hiba a megadott eszköztípussal vagy iOS-verzióval rendelkező szimulátor hiányát jelzi. Megoldás: futtassa az xcrun simctl create parancsot a szimulátor létrehozásához, vagy adjon meg egy létező eszközt az xcrun simctl list listájából. xcrun simctl az Xcode parancssori eszköze iOS szimulátorok kezeléséhez: létrehozás, törlés, indítás és diagnosztika.
A «UI test failure» hiba esetén az UI-teszt nem megy át az egyik nyelven vagy eszközön. Megoldás: futtassa a Snapshot-ot a --stop_after_first_error zászlóval az első hibánál való megálláshoz, elemezze a képernyőképet a HTML-jelentésben, és javítsa ki a tesztet. Gyakori ok a szöveg eltérő hossza különböző nyelveken, ami miatt a felületelemek átfedik egymást vagy kilépnek a képernyő határain.
Gyakran ismételt kérdések
A Snapshot támogatja az iPhone és iPad család összes eszközét, beleértve az iPhone 15 Pro Max (6.7 hüvelyk), iPhone 15 (6.1 hüvelyk), iPad Pro 12.9 hüvelyk és iPad mini készülékeket. Minden eszközhöz a Snapshot betölti a megfelelő szimulátor-skin-eket az Xcode-ból, ami garantálja a pontos képernyőfelbontást.
Nem, a Snapshot kizárólag az Xcode-ból származó iOS szimulátorokkal működik. Valódi eszközök nem szükségesek és nem támogatottak — minden képernyőkép a szimulátor környezetében készül, amely azonos felbontást és színvisszaadást biztosít az App Store követelményeihez.
A Snapshot átváltja a szimulátor nyelvét az UI-tesztek futtatása előtt minden Snapfile-ból származó nyelvhez. Az alkalmazás a rendszer lokalizációs beállításain keresztül a megfelelő nyelven jelenik meg. Az UI-tesztek lokalizált karakterláncokat használnak a NSLocalizedString-en keresztül, ami garantálja a helyes szöveget az összes képernyőképen.
Igen, a Snapshot támogatja a macOS-alkalmazásokat a Fastlane 2.200 verziójától kezdve. macOS esetén adja meg a platformot a Snapfile-ban az app_platform("macOS") paraméteren keresztül. A Snapshot UI-teszteket futtat macOS-en, és a Mac App Store követelményeinek megfelelő képernyőképeket készít.
A manuális képernyőképhez manuálisan kell megnyitni minden képernyőt, váltani a nyelvet, váltani az eszközt — körülbelül 60 művelet egy teljes készlethez. A Snapshot automatizálja a teljes folyamatot: váltja a nyelveket és eszközöket, futtatja az UI-teszteket, és 15 perc alatt elmenti a képernyőképeket a megfelelő nevekkel az App Store számára.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is