Ang Snapshot (Fastlane) ay isang kasangkapan para sa awtomatikong pagbuo ng mga screenshot ng iOS app sa lahat ng sinusuportahang device at wika. Hindi tulad ng manu-manong paggawa ng mga screenshot sa pamamagitan ng simulator, pinapatakbo ng Snapshot ang mga UI test at kumukuha ng mga screenshot sa mga tinukoy na punto ng app. Ayon sa opisyal na dokumentasyon ng Fastlane (2026), binabawasan ng Snapshot ang oras ng paghahanda ng mga screenshot para sa release mula 4 na oras hanggang 15 minuto.
Mga pangunahing punto
Snapshot (Fastlane) ay isang bahagi ng ecosystem ng Fastlane na nag-automate ng paggawa ng mga screenshot ng app para sa App Store. Pinapatakbo nito ang mga UI test sa iOS simulator, kumukuha ng mga screenshot sa mga tinukoy na estado ng app at ini-save ang mga ito sa isang nakabalangkas na direktoryo na may tamang pangalan para sa bawat wika at device.
Kung wala ang Snapshot, manu-manong sinisimulan ng mga developer ang simulator, binubuksan ang bawat screen, kumukuha ng screenshot sa pamamagitan ng Cmd+S, pinapalitan ang wika at inuulit ang proseso para sa lahat ng kombinasyon. Ang automation ng screenshot ay isang pangunahing elemento ng pag-optimize ng ASO, dahil ang App Store ay nangangailangan ng mga napapanahong larawan para sa bawat bagong release, at ang manu-manong pag-update ng 60+ screenshot ay tumatagal ng maraming oras.
Ayon sa App Store Connect Documentation (2025), ang mga app na may naka-localize na screenshot ay nakakakuha ng 25% na mas maraming conversion sa mga target na bansa. Pinapayagan ng Snapshot ang mga team na i-update ang visual na nilalaman para sa 32 wika sa isang pagpapatakbo, na mahalaga lalo na para sa mga kampanya sa marketing na nauugnay sa mga bagong feature ng app.
Gamitin ang Snapshot sa anumang proyekto na nai-publish sa App Store — ito ay isang karaniwang kasangkapan para sa mga team na nagsusumikap sa automation ng proseso ng release at pagpapabuti ng ASO.
Ang proseso ng pagbuo ng screenshot sa Snapshot ay binubuo ng ilang yugto: paghahanda ng UI test, configuration ng Snapfile, pagsisimula ng mga simulator at pagkolekta ng mga resulta. Sinu-sunod na sinisimulan ng Snapshot ang bawat simulator para sa mga tinukoy na device at wika, pinapatakbo ang mga UI test at kumukuha ng mga larawan sa mga punto ng pagtawag ng function na snapshot().
Pagkatapos ng lahat ng test, kinokolekta ng Snapshot ang mga screenshot sa direktoryo ng screenshots/[Language]/ na may mga pangalan na naaayon sa mga kinakailangan ng App Store. Ang bawat screenshot ay nai-save sa PNG format na may resolusyon na naaayon sa target na device. Bumubuo rin ang Snapshot ng HTML report para sa visual na pag-verify ng lahat ng nilikhang larawan.
Para gumana ang Snapshot, kailangang magdagdag ng mga tawag na snapshot() sa XCTest code ng UI test ng app. Kinukuha ng function ang screenshot ng kasalukuyang estado ng screen sa oras ng pagtawag. Inilalagay ng developer ang snapshot() pagkatapos ng bawat pangunahing aksyon: pagbubukas ng screen, pagpasok ng data, pag-navigate sa mga tab o pagpapakita ng mga resulta.
Halimbawa ng istraktura ng UI test: nag-log in ang test sa app, tumawag ng snapshot("01-LoginScreen") para sa screenshot ng login screen, pagkatapos ay pumunta sa pangunahing screen at tumawag ng snapshot("02-HomeScreen") para sa screenshot ng pangunahing screen. Ang XCTest ay framework ng Apple para sa unit at UI testing ng iOS app, na direktang isinama sa Xcode.
// UI test para sa 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");
}
Awtomatikong pinapalitan ng Snapshot ang wika ng simulator para sa bawat wikang tinukoy sa Snapfile. Sinisimulan ang app na may kaukulang lokalisasyon, at ang mga UI test ay isinasagawa sa wikang iyon. Ang lokalisasyon ng screenshot ay isang kritikal na kadahilanan ng ASO: mas gusto ng mga user sa 75% ng mga kaso ang mga app na may nilalaman sa kanilang katutubong wika, kabilang ang mga screenshot sa App Store.
Para sa bawat device, sinisimulan ng Snapshot ang isang hiwalay na simulator na may kaukulang diagonal ng screen. Lahat ng sukat na kinakailangan ng App Store ay sinusuportahan: iPhone 6.5 pulgada (iPhone 15 Pro Max), 5.5 pulgada (iPhone 8 Plus), 6.7 pulgada (iPhone 15 Plus) at iPad 12.9 pulgada. Ang iOS Simulator ay isang software emulation ng iOS device na naka-embed sa Xcode para sa pagsubok ng mga app nang walang pisikal na device.
# Pagbuo ng mga screenshot para sa lahat ng device at wika
fastlane snapshot
# Pagbuo lamang para sa mga tinukoy na device
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"
# Paglilinis bago bumuo ng mga screenshot
fastlane snapshot --reinstall_app --erase_simulator
Ang Snapfile ay configuration file ng Fastlane na tumutukoy sa mga parameter ng pagbuo ng screenshot: listahan ng mga device, wika, oras ng paghihintay at mga opsyon sa pagsisimula. Ang Snapfile ay naka-imbak sa direktoryo ng fastlane at naka-version kasama ng proyekto, na ginagarantiyahan ang pare-parehong configuration para sa lahat ng miyembro ng team.
# Snapfile — configuration ng screenshot
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)
Ang parameter na clear_previous_screenshots ay nagtatanggal ng mga lumang screenshot bago simulan ang pagbuo — pinipigilan nito ang pag-ipon ng mga lumang larawan sa output directory. Ang reinstall_app ay muling nag-i-install ng app sa simulator bago ang bawat pagpapatakbo, na ginagarantiyahan ang malinis na session nang walang impluwensya ng mga nakaraang test sa bagong pagbuo.
Ang parameter na erase_simulator ay naglilinis ng nilalaman ng simulator bago simulan ang mga test — kabilang ang cache, mga setting at data ng mga nakaraang session. Ito ay lalong mahalaga para sa mga test na sumusuri sa onboarding o unang paglunsad ng app. Sinusuportahan din ng Snapshot ang mga parameter na ios_version para sa pagtukoy ng bersyon ng iOS sa simulator at stop_after_first_error para sa paghinto ng pagbuo sa unang error ng UI test.
Para sa mga proyekto na may SwiftUI, ang parameter na use_simulator_for_language ay magagamit, na namamahala sa pagpapalit ng wika sa pamamagitan ng mga setting ng simulator sa halip na baguhin ang rehiyon ng system. Sinusuportahan din ng Snapshot ang launch_arguments para sa pagpasa ng mga karagdagang argumento kapag sinisimulan ang app — kapaki-pakinabang para sa mga test na may iba't ibang configuration ng backend o A/B test.
Ang interface ng Snapshot ay may kasamang mga pangunahing utos para sa pagsisimula ng pagbuo at mga advanced na flag para sa tumpak na kontrol sa proseso. Ang pangunahing utos na fastlane snapshot ay nagpapatakbo ng buong siklo ng pagbuo ng screenshot batay sa configuration mula sa Snapfile.
Ang utos na fastlane snapshot --devices "iPhone 15" ay bumubuo ng mga screenshot para lamang sa mga tinukoy na device, na hindi pinapansin ang iba mula sa Snapfile. Ang --languages "en-US,ru" ay nag-filter ng mga wika para sa pagbuo. Ang kombinasyon ng mga flag na ito ay kapaki-pakinabang para sa mabilis na pagsusuri ng mga screenshot sa isang device at wika nang walang buong siklo ng pagbuo, na maaaring tumagal ng hanggang 30 minuto para sa 5 device at 10 wika.
# Mabilis na pagbuo para sa isang device
fastlane snapshot --devices "iPhone 15" --languages "en-US"
# Pagbuo na may muling pag-install ng app
fastlane snapshot --reinstall_app --erase_simulator
# Pagbuo na may HTML report
fastlane snapshot --output_directory "./build/screenshots"
Ang flag na --output_directory ay nagbabago ng direktoryo ng pag-save ng mga resulta. Bilang default, ini-save ng Snapshot ang mga screenshot sa fastlane/screenshots. Para sa pagsasama sa Deliver, tukuyin ang isang direktoryo na tumutugma sa inaasahang istraktura ng Deliverfile — pinapayagan nito ang direktang paglipat ng mga screenshot sa proseso ng publikasyon nang walang manu-manong pagkopya ng mga file sa pagitan ng mga folder.
| Parameter ng Snapshot | Layunin | Halimbawa |
|---|---|---|
| devices | Listahan ng mga device para sa pagbuo | iPhone 15, iPad Pro |
| languages | Listahan ng mga wika ng lokalisasyon | en-US, ru, de-DE |
| reinstall_app | Muling pag-install ng app bago ang mga test | true / false |
| erase_simulator | Paglilinis ng simulator bago simulan | true / false |
| clear_previous | Pagtatanggal ng mga lumang screenshot | true / false |
Snapshot sa CI/CD ay awtomatikong pagbuo ng mga screenshot sa bawat release commit. Ang Snapshot ay pinapatakbo bago ang yugto ng Deliver upang matiyak na ang mga screenshot sa App Store ay tumutugma sa kasalukuyang bersyon ng app at hindi naglalaman ng mga lumang elemento ng interface mula sa mga nakaraang bersyon.
Para sa Snapshot sa CI, kinakailangan ang Xcode na may naka-install na iOS simulator. Sa kapaligiran ng CI, ginagamit ng Snapshot ang mga simulator mula sa Xcode na paunang nai-load sa runner. Ang GitHub Actions ay nagbibigay ng mga image na may paunang naka-install na Xcode at iOS simulator para sa pagpapatakbo ng mga UI test nang walang karagdagang configuration.
# Pagpapatakbo ng Snapshot sa kapaligiran ng CI
fastlane snapshot --skip_open_summary \
--output_directory "$CI_PROJECT_DIR/screenshots"
# Pag-save ng mga screenshot bilang mga artifact ng CI
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"
Ang parameter na --skip_open_summary ay nagde-deactivate ng pagbubukas ng HTML report pagkatapos ng pagbuo — sa kapaligiran ng CI, hindi available ang graphical interface. Ang mga resulta ng pagbuo ay nai-save sa isang direktoryo na ipinapasa bilang artifact ng gawain ng CI at pagkatapos ay ginagamit ng Deliver para i-upload sa App Store kasama ng release.
Upang pabilisin ang pipeline ng CI, gamitin ang parallel na pagbuo ng mga screenshot sa pamamagitan ng concurrent_simulators — isang parameter ng Snapfile na sabay na nagpapatakbo ng maraming simulator. Binabawasan nito ang oras ng pagbuo ng mga screenshot para sa 5 device at 10 wika mula 40 minuto hanggang 15 minuto gamit ang 4 na parallel thread.
Sa paggamit ng Snapshot, ang mga developer ay madalas na nakakaranas ng mga error na may kaugnayan sa kawalang-tatag ng mga UI test, mga problema sa simulator at maling configuration ng device. Ang diagnosis ng error ng Snapshot ay nagsisimula sa pagsusuri ng HTML report, na naglalaman ng mga screenshot ng bawat hakbang at impormasyon tungkol sa mga nabigong test.
Ang error na «Failed to build scheme MyAppUITests» ay nangyayari kapag ang scheme ng UI test ay hindi na-configure para sa pag-build. Solusyon: tiyakin na ang isang hiwalay na Scheme para sa UI test ay nilikha sa Xcode at ang opsyon na Shared ay naka-activate para sa access mula sa command line. Ang Xcode Scheme ay configuration ng pag-build, pagsubok at paglunsad ng app na tumutukoy sa set ng mga target at parameter para sa bawat aksyon.
Ang error na «No simulators found matching...» ay nagpapahiwatig ng kawalan ng simulator na may tinukoy na uri ng device o bersyon ng iOS. Solusyon: patakbuhin ang xcrun simctl create upang lumikha ng simulator o tukuyin ang isang umiiral na device mula sa listahan ng xcrun simctl list. Ang xcrun simctl ay command-line tool ng Xcode para sa pamamahala ng iOS simulator: paglikha, pagtanggal, pagsisimula at diagnosis.
Sa error na «UI test failure» ang UI test ay hindi pumasa sa isa sa mga wika o device. Solusyon: patakbuhin ang Snapshot na may flag na --stop_after_first_error upang huminto sa unang error, suriin ang screenshot sa HTML report at ayusin ang test. Ang karaniwang dahilan ay magkakaibang haba ng teksto sa iba't ibang wika, na nagiging sanhi ng pag-overlap ng mga elemento ng interface o paglabas sa mga hangganan ng screen.
Mga madalas itanong
Sinusuportahan ng Snapshot ang lahat ng device mula sa pamilya ng iPhone at iPad, kabilang ang iPhone 15 Pro Max (6.7 pulgada), iPhone 15 (6.1 pulgada), iPad Pro 12.9 pulgada at iPad mini. Para sa bawat device, naglo-load ang Snapshot ng kaukulang simulator skin mula sa Xcode, na ginagarantiyahan ang tumpak na resolusyon ng screen.
Hindi, ang Snapshot ay gumagana lamang sa mga iOS simulator mula sa Xcode. Ang mga tunay na device ay hindi kinakailangan at hindi suportado — lahat ng screenshot ay nabuo sa kapaligiran ng simulator na nagbibigay ng magkaparehong resolusyon at reproduksyon ng kulay para sa mga kinakailangan ng App Store.
Pinapalitan ng Snapshot ang wika ng simulator bago patakbuhin ang mga UI test para sa bawat wika mula sa Snapfile. Ang app ay ipinapakita sa kaukulang wika sa pamamagitan ng mga setting ng lokalisasyon ng system. Ang UI test ay gumagamit ng naka-localize na mga string sa pamamagitan ng NSLocalizedString, na ginagarantiyahan ang tamang teksto sa lahat ng screenshot.
Oo, sinusuportahan ng Snapshot ang macOS app simula sa bersyon ng Fastlane 2.200. Para sa macOS, tukuyin ang platform sa Snapfile sa pamamagitan ng parameter na app_platform("macOS"). Pinapatakbo ng Snapshot ang mga UI test sa macOS at lumilikha ng mga screenshot ayon sa mga kinakailangan ng Mac App Store.
Ang manu-manong screenshot ay nangangailangan ng manu-manong pagbubukas ng bawat screen, pagpapalit ng wika, pagpapalit ng device — mga 60 aksyon para sa kumpletong set. Ang Snapshot ay nag-automate ng buong proseso: pinapalitan ang mga wika at device, pinapatakbo ang mga UI test at ini-save ang mga screenshot na may tamang pangalan para sa App Store sa loob ng 15 minuto.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din