Snapshot (Fastlane) — bütün dəstəklənən cihazlarda və dillərdə iOS tətbiqlərinin ekran görüntülərini avtomatik yaratmaq üçün alətdir. Simulyator vasitəsilə əl ilə ekran görüntüləri yaratmaqdan fərqli olaraq, Snapshot UI testlərini işə salır və tətbiqin müəyyən nöqtələrində ekran görüntüləri çəkir. Fastlane rəsmi sənədlərinə (2026) görə, Snapshot buraxılış üçün ekran görüntülərinin hazırlanma vaxtını 4 saatdan 15 dəqiqəyə endirir.
Əsas məqamlar
Snapshot (Fastlane) — App Store üçün tətbiq ekran görüntülərinin yaradılmasını avtomatlaşdıran Fastlane ekosisteminin komponentidir. O, iOS simulyatorlarında UI testlərini işə salır, tətbiqin müəyyən vəziyyətlərində ekran görüntüləri çəkir və onları hər bir dil və cihaz üçün düzgün adlarla strukturlaşdırılmış qovluqda saxlayır.
Snapshot olmadan tərtibatçılar simulyatoru əl ilə işə salır, hər ekranı açır, Cmd+S vasitəsilə ekran görüntüsü çəkir, dili dəyişir və bütün kombinasiyalar üçün prosesi təkrarlayır. Ekran görüntülərinin avtomatlaşdırılması ASO optimallaşdırılmasının əsas elementidir, çünki App Store hər yeni buraxılış üçün aktual şəkillər tələb edir və 60+ ekran görüntüsünün əl ilə yenilənməsi saatlarla iş vaxtı aparır.
App Store Connect Documentation (2025) məlumatına görə, lokallaşdırılmış ekran görüntüləri olan tətbiqlər hədəf ölkələrdə 25% daha çox konversiya əldə edir. Snapshot komandalara bir işə salma ilə 32 dil üçün vizual məzmunu yeniləməyə imkan verir ki, bu da tətbiqin yeni funksiyalarına bağlı marketinq kampaniyaları üçün xüsusilə vacibdir.
Snapshot-dan App Store-da dərc olunan istənilən layihədə istifadə edin — bu, buraxılış prosesinin avtomatlaşdırılmasına və ASO-nun yaxşılaşdırılmasına çalışan komandalar üçün standart alətdir.
Ekran görüntülərinin yaradılması prosesi Snapshot-da bir neçə mərhələdən ibarətdir: UI testlərinin hazırlanması, Snapfile konfiqurasiyası, simulyatorların işə salınması və nəticələrin toplanması. Snapshot ardıcıl olaraq göstərilən cihazlar və dillər üçün hər simulyatoru işə salır, UI testlərini yerinə yetirir və snapshot() funksiyasının çağırıldığı nöqtələrdə şəkillər çəkir.
Bütün testlər başa çatdıqdan sonra Snapshot ekran görüntülərini App Store tələblərinə uyğun adlarla screenshots/[Language]/ qovluğuna toplayır. Hər bir ekran görüntüsü hədəf cihaza uyğun təsvir ölçüsü ilə PNG formatında saxlanılır. Snapshot həmçinin yaradılmış bütün şəkillərin vizual yoxlanılması üçün HTML hesabatı yaradır.
Snapshot-un işləməsi üçün tətbiqin XCTest UI test koduna snapshot() çağırışları əlavə edilməlidir. Funksiya çağırış anında cari ekran vəziyyətinin ekran görüntüsünü çəkir. Tərtibatçı snapshot()-i hər əsas əməliyyatdan sonra yerləşdirir: ekranın açılması, məlumatların daxil edilməsi, tablar üzrə naviqasiya və ya nəticələrin göstərilməsi.
UI test strukturunun nümunəsi: test tətbiqə daxil olur, giriş ekranının şəkli üçün snapshot("01-LoginScreen") çağırır, sonra əsas ekrana keçir və əsas ekranın şəkli üçün snapshot("02-HomeScreen") çağırır. XCTest — iOS tətbiqlərinin vahid və UI testi üçün Apple freymvorku, birbaşa Xcode-a inteqrasiya olunub.
// Snapshot üçün UI testi
- (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 Snapfile-da göstərilən hər bir dil üçün simulyatorun dilini avtomatik dəyişir. Tətbiq müvafiq lokallaşdırma ilə işə salınır və UI testləri bu dildə yerinə yetirilir. Ekran görüntülərinin lokallaşdırılması — ASO-nun kritik amili: istifadəçilər 75% hallarda ana dilində məzmunu olan tətbiqlərə üstünlük verir, o cümlədən App Store-dakı ekran görüntüləri.
Hər bir cihaz üçün Snapshot müvafiq ekran diaqonalı ilə ayrıca simulyator işə salır. App Store tərəfindən tələb olunan bütün ölçülər dəstəklənir: iPhone 6.5 düym (iPhone 15 Pro Max), 5.5 düym (iPhone 8 Plus), 6.7 düym (iPhone 15 Plus) və iPad 12.9 düym. iOS Simulyatoru — fiziki cihaz olmadan tətbiqləri sınamaq üçün Xcode-a daxil edilmiş iOS cihazının proqram emulyasiyasıdır.
# Bütün cihazlar və dillər üçün ekran görüntülərinin yaradılması
fastlane snapshot
# Yalnız göstərilən cihazlar üçün generasiya
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"
# Ekran görüntülərinin yaradılmasından əvvəl təmizləmə
fastlane snapshot --reinstall_app --erase_simulator
Snapfile — ekran görüntülərinin yaradılması parametrlərini təyin edən Fastlane konfiqurasiya faylıdır: cihazların siyahısı, dillər, gözləmə vaxtı və işə salma seçimləri. Snapfile fastlane qovluğunda saxlanılır və layihə ilə birlikdə versiyalanır ki, bu da komandanın bütün üzvləri üçün vahid konfiqurasiyanı təmin edir.
# Snapfile — ekran görüntülərinin konfiqurasiyası
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)
clear_previous_screenshots parametri generasiyaya başlamazdan əvvəl köhnə ekran görüntülərini silir — bu, çıxış qovluğunda köhnəlmiş şəkillərin yığılmasının qarşısını alır. reinstall_app hər işə salmadan əvvəl tətbiqi simulyatora yenidən quraşdırır ki, bu da əvvəlki testlərin yeni generasiyaya təsiri olmadan təmiz sessiyanı təmin edir.
erase_simulator parametri testlərə başlamazdan əvvəl simulyatorun məzmununu təmizləyir — keş, parametrlər və əvvəlki sessiyaların məlumatları daxil olmaqla. Bu, xüsusilə tətbiqin onboardingini və ya ilk işə salınmasını yoxlayan testlər üçün vacibdir. Snapshot həmçinin simulyatorda iOS versiyasını göstərmək üçün ios_version və UI testinin ilk xətasında generasiyanı dayandırmaq üçün stop_after_first_error parametrlərini dəstəkləyir.
SwiftUI layihələri üçün use_simulator_for_language parametri mövcuddur ki, bu da sistem regionunu dəyişmək əvəzinə simulyator parametrləri vasitəsilə dilin dəyişdirilməsini idarə edir. Snapshot həmçinin tətbiqi işə salarkən əlavə arqumentlər ötürmək üçün launch_arguments dəstəkləyir — backend-in müxtəlif konfiqurasiyaları və ya A/B testləri ilə sınaqlar üçün faydalıdır.
Snapshot interfeysi generasiyanı işə salmaq üçün əsas əmrləri və proses üzərində dəqiq nəzarət üçün genişləndirilmiş flaqqları əhatə edir. Əsas əmr fastlane snapshot Snapfile konfiqurasiyası əsasında ekran görüntülərinin tam generasiya dövrünü işə salır.
fastlane snapshot --devices "iPhone 15" əmri Snapfile-dan qalanlarını nəzərə almadan yalnız göstərilən cihazlar üçün ekran görüntüləri yaradır. --languages "en-US,ru" generasiya üçün dilləri filtrləyir. Bu flaqqların kombinasiyası 5 cihaz və 10 dildə 30 dəqiqəyə qədər çəkə bilən tam generasiya dövrü olmadan bir cihaz və dildə ekran görüntülərini tez yoxlamaq üçün faydalıdır.
# Bir cihaz üçün sürətli generasiya
fastlane snapshot --devices "iPhone 15" --languages "en-US"
# Tətbiqin yenidən quraşdırılması ilə generasiya
fastlane snapshot --reinstall_app --erase_simulator
# HTML hesabatı ilə generasiya
fastlane snapshot --output_directory "./build/screenshots"
--output_directory flaqı nəticələrin saxlanma qovluğunu dəyişir. Susmaya görə Snapshot ekran görüntülərini fastlane/screenshots qovluğunda saxlayır. Deliver ilə inteqrasiya üçün Deliverfile gözlənilən strukturuna uyğun qovluq göstərin — bu, faylları qovluqlar arasında əl ilə köçürmədən ekran görüntülərini birbaşa nəşr prosesinə ötürməyə imkan verir.
| Snapshot parametri | Təyinat | Nümunə |
|---|---|---|
| devices | Generasiya üçün cihazların siyahısı | iPhone 15, iPad Pro |
| languages | Lokallaşdırma dillərinin siyahısı | en-US, ru, de-DE |
| reinstall_app | Testlərdən əvvəl tətbiqin yenidən quraşdırılması | true / false |
| erase_simulator | İşə salmadan əvvəl simulyatorun təmizlənməsi | true / false |
| clear_previous | Köhnə ekran görüntülərinin silinməsi | true / false |
Snapshot CI/CD-də — hər buraxılış commitində avtomatik ekran görüntülərinin yaradılmasıdır. Snapshot Deliver mərhələsindən əvvəl işə salınır ki, App Store-dakı ekran görüntülərinin tətbiqin cari versiyasına uyğun olmasını və əvvəlki versiyaların köhnəlmiş interfeys elementlərini ehtiva etməməsini təmin etsin.
CI-da Snapshot-un işləməsi üçün quraşdırılmış iOS simulyatorları ilə Xcode tələb olunur. CI mühitində Snapshot runner-a əvvəlcədən yüklənmiş Xcode simulyatorlarından istifadə edir. GitHub Actions əlavə konfiqurasiya olmadan UI testlərini işə salmaq üçün əvvəlcədən quraşdırılmış Xcode və iOS simulyatorları olan image-lər təqdim edir.
# Snapshot-un CI mühitində işə salınması
fastlane snapshot --skip_open_summary \
--output_directory "$CI_PROJECT_DIR/screenshots"
# Ekran görüntülərinin CI artefaktları kimi saxlanılması
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"
--skip_open_summary parametri generasiyadan sonra HTML hesabatının açılmasını söndürür — CI mühitində qrafik interfeys mövcud deyil. Generasiya nəticələri CI tapşırığının artefaktı kimi ötürülən qovluqda saxlanılır və sonra buraxılışla birlikdə App Store-a yükləmək üçün Deliver tərəfindən istifadə olunur.
CI pipeline-nı sürətləndirmək üçün concurrent_simulators vasitəsilə paralel ekran görüntüləri generasiyasından istifadə edin — bu Snapfile parametri eyni anda bir neçə simulyatoru işə salır. Bu, 4 paralel axından istifadə edərkən 5 cihaz və 10 dil üçün ekran görüntülərinin generasiya vaxtını 40 dəqiqədən 15 dəqiqəyə endirir.
Snapshot-dan istifadə edərkən tərtibatçılar ən çox UI testlərinin qeyri-sabitliyi, simulyator problemləri və cihazların səhv konfiqurasiyası ilə bağlı səhvlərlə qarşılaşır. Səhvlərin diaqnostikası Snapshot-da hər addımın ekran görüntülərini və uğursuz testlər haqqında məlumatları ehtiva edən HTML hesabatının təhlili ilə başlayır.
«Failed to build scheme MyAppUITests» səhvi UI testlərinin sxemi qurma üçün konfiqurasiya edilmədikdə yaranır. Həlli: Xcode-da UI testləri üçün ayrıca Scheme yaradıldığından və əmr sətrindən giriş üçün Shared seçiminin aktiv olduğundan əmin olun. Xcode Scheme — hər bir hərəkət üçün məqsəd və parametrlər dəstini təyin edən tətbiqin qurulması, test edilməsi və işə salınması konfiqurasiyasıdır.
«No simulators found matching...» səhvi göstərilən cihaz növü və ya iOS versiyası ilə simulyatorun olmamasını göstərir. Həlli: simulyator yaratmaq üçün xcrun simctl create yerinə yetirin və ya xcrun simctl list siyahısından mövcud cihazı göstərin. xcrun simctl — iOS simulyatorlarını idarə etmək üçün Xcode əmr sətri aləti: yaratma, silmə, işə salma və diaqnostika.
«UI test failure» səhvində UI testi dillərdən və ya cihazlardan birində keçmir. Həlli: ilk xətada dayanmaq üçün Snapshot-ı --stop_after_first_error flaqı ilə işə salın, HTML hesabatındakı ekran görüntüsünü təhlil edin və testi düzəldin. Tez-tez səbəb müxtəlif dillərdə mətnin fərqli uzunluğudur, buna görə interfeys elementləri üst-üstə düşür və ya ekranın sərhədlərindən kənara çıxır.
Tez-tez verilən suallar
Snapshot iPhone 15 Pro Max (6.7 düym), iPhone 15 (6.1 düym), iPad Pro 12.9 düym və iPad mini daxil olmaqla iPhone və iPad ailəsinin bütün cihazlarını dəstəkləyir. Hər bir cihaz üçün Snapshot Xcode-dan müvafiq simulyator skin-lərini yükləyir ki, bu da dəqiq ekran təsvir ölçüsünü təmin edir.
Xeyr, Snapshot yalnız Xcode tərkibindəki iOS simulyatorları ilə işləyir. Real cihazlar tələb olunmur və dəstəklənmir — bütün ekran görüntüləri App Store tələbləri üçün eyni təsvir ölçüsü və rəng ötürülməsini təmin edən simulyator mühitində yaradılır.
Snapshot Snapfile-dan hər bir dil üçün UI testlərini işə salmazdan əvvəl simulyatorun dilini dəyişir. Tətbiq sistem lokallaşdırma parametrləri vasitəsilə müvafiq dildə göstərilir. UI testləri NSLocalizedString vasitəsilə lokallaşdırılmış sətirlərdən istifadə edir ki, bu da bütün ekran görüntülərində düzgün mətni təmin edir.
Bəli, Snapshot Fastlane 2.200 versiyasından etibarən macOS tətbiqlərini dəstəkləyir. macOS üçün Snapfile-da app_platform("macOS") parametri vasitəsilə platformanı göstərin. Snapshot macOS-da UI testlərini işə salır və Mac App Store tələblərinə uyğun ekran görüntüləri yaradır.
Əl ilə ekran görüntüsü hər ekranı əl ilə açmağı, dili dəyişməyi, cihazı dəyişməyi tələb edir — tam dəst üçün təxminən 60 hərəkət. Snapshot bütün prosesi avtomatlaşdırır: dilləri, cihazları dəyişir, UI testlərini işə salır və App Store üçün düzgün adlarla ekran görüntülərini 15 dəqiqəyə saxlayır.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun