Screengrab (Fastlane) — bu nima, imkoniyatlari va skrinshotlar avtomatlashtirish

Muallif: IT Sectr Nashr etilgan: 2026-04-15 O'qish vaqti: 8 daq

Screengrab — Android va iOS uchun mobil ilovalar skrinshotlarini yaratishni avtomatlashtirish uchun Fastlane ekotizimidagi yordamchi dastur. O'nlab qurilmalarda ekranlarni qo'lda aylantirish o'rniga, dasturchi bitta buyruqni ishga tushiradi va Screengrab mustaqil ravishda barcha kerakli ekranlarning suratlarini oladi. Fastlane Docs, 2026 ma'lumotlariga ko'ra, vosita bir vaqtning o'zida 30 tagacha tilni va konfiguratsiyada belgilangan istalgan ekran o'lchamlarini qo'llab-quvvatlaydi.

Asosiy

  • Screengrab — Android va iOS uchun mobil ilovalar skrinshotlarini avtomatik yaratish uchun Fastlane vositasi.
  • Avtomatlashtirish yuzlab skrinshotlarni qo'lda yaratishni terminaldagi bitta buyruq bilan almashtiradi.
  • Lokalizatsiya — qo'shimcha sozlamalarsiz o'nlab tillarda bir vaqtning o'zida skrinshotlar generatsiyasi.
  • CI/CD — har qanday pipeline bilan integratsiya: Jenkins, GitHub Actions, GitLab CI.
  • Moslashuvchanlik — bir ishga tushirishda bir nechta qurilmalar, orientatsiyalar va tillarni qo'llab-quvvatlash.

Screengrab nima va nima uchun kerak

Screengrab — mobil ilovalarning skrinshotlarini avtomatlashtirilgan yaratish uchun Fastlane ekotizimining komponenti. Vosita 2015 yilda muammoga javob sifatida paydo bo'ldi: Google Play va App Store da nashr qilish uchun har bir til uchun 4 dan 10 gacha skrinshot talab qilinadi. 30 tilni qo'llab-quvvatlaganda, bu 120–300 ta qo'lda olingan surat degani.

Skrinshotlarni qo'lda yaratish muammosi

Dasturchi ilovani simulyator yoki qurilmada qo'lda ishga tushiradi, kerakli ekranga o'tadi, skrinshot oladi, uni kompyuterga ko'chiradi, kesadi va kerakli papkaga saqlaydi. Jarayon har bir til va har bir orientatsiya uchun takrorlanadi. Google Play Console ma'lumotlariga ko'ra, o'rtacha ilova ikki haftada bir marta yangilanadi, bu skrinshotlarni muntazam ishga aylantiradi.

Avtomatlashtirishning afzalliklari

Screengrab muammoni tubdan hal qiladi: dasturchi UI frameworkida (Android uchun Espresso, iOS uchun XCTest) test stsenariylarini tasvirlaydi va Screengrab ularni barcha kerakli qurilmalar va tillarda avtomatik ravishda ishga tushiradi. Fastlane jarayonni muvofiqlashtiradi: build-ni yig'adi, testlarni ishga tushiradi, skrinshotlarni to'playdi va ularni kerakli papka strukturasiga joylaydi.

Natija — bir necha soatlik qo'l mehnati o'rniga 10–15 daqiqada yuzta skrinshot. Google interfeysdagi har bir muhim o'zgarishda skrinshotlarni yangilashni tavsiya qiladi va avtomatlashtirishsiz bu maslahat ko'pincha e'tiborga olinmaydi.

Screengrab qanday ishlaydi: arxitektura va ishlash printsipi

Arxitektura Screengrab ikkita asosiy komponent atrofida qurilgan: qurilmadagi mijoz (screengrab-lib) va testlarni ishga tushirish va natijalarni yig'ishni boshqaradigan runner. Android da instrumental test frameworki, iOS da XCTest ishlatiladi.

Bir ishga tushirishning hayot aylanishi

Fastlane screengrab aksiyasini chaqiradi, u Screengrabfile konfiguratsiya faylini o'qiydi. Runner screengrab-lib kutubxonasi bilan bog'langan test APK ni yig'adi, uni ulangan qurilmalar yoki emulyatorlarga o'rnatadi va skrinshotlar uchun annotatsiyalar bilan belgilangan UI testlarini ishga tushiradi.

ruby
# Fastfile — skrinshotlar uchun lane tavsifi
lane :screenshots do
  capture_android_screenshots(
    output_directory: "fastlane/metadata/android/screenshots",
    locales: ["ru-RU", "en-US", "de-DE"],
    devices: ["pixel_6", "pixel_tablet"],
    use_tests_external_storage: true
  )
end

Chiqish fayllari strukturasi

Screengrab papka ierarxiyasini yaratadi: til → qurilma → skrinshotlar. Struktura to'liq Google Play Console va App Store Connect talablariga javob beradi. App Store har bir qurilma turi uchun qat'iy belgilangan o'lchamlarni talab qiladi va Screengrab suratlarni aynan spetsifikatsiyalarga mos ravishda yaratadi.

Bir nechta qurilmalarni qo'llab-quvvatlash

Vosita testlarni barcha ulangan qurilmalar va emulyatorlarda parallel ravishda ishga tushirishi mumkin. Android emulyatorlari faol bo'lmasa, avtomatik ravishda ishga tushadi. iOS uchun Screengrab Xcode simulyatorlaridan foydalanadi.

Android uchun Screengrab o'rnatish va sozlash

Screengrab o'rnatish ikki qismdan iborat: kutubxonani loyihaga qo'shish va konfiguratsiya faylini sozlash. Android da UI framework Espresso va Fastlane repozitoriyasidan screengrab-lib kutubxonasi kerak bo'ladi.

Bog'liqliklarni ulash

Ilova modulining build.gradle fayliga screengrab-lib bog'liqligi qo'shiladi. Kutubxona chaqiruv vaqtida ekran suratini oladigan ScreenCapturer sinfini taqdim etadi.

groovy
// build.gradle (modul: app)
androidTestImplementation(
  'tools.fastlane:screengrab-lib:2.1.0'
)

Skrinshotlar bilan test yozish

UI testi kerakli nuqtalarda Screengrab.screenshot() annotatsiyasi bilan belgilanadi. Har bir chaqiruv joriy ekranning suratini oladi va uni ko'rsatilgan nom bilan saqlaydi.

kotlin
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule

class ScreenshotTest {

    @get:Rule
    val localeTestRule = LocaleTestRule()

    @Test
    fun testTakeScreenshots() {
        Screengrab.screenshot("main_screen")
        // Harakatlar: kirish tugmasini bosing
        Screengrab.screenshot("login_screen")
    }
}

Screengrabfile konfiguratsiyasi

Screengrabfile fayli ishga tushirish parametrlarini saqlaydi: qurilmalar ro'yxati, tillar, vaqt cheklovlari va saqlash yo'li. Fayl odatda fastlane papkasida Fastfile yonida joylashgan.

Skrinshotlar lokalizatsiyasi va bir nechta tillar

Lokalizatsiya — Screengrab ning asosiy xususiyati, buning uchun u ko'pincha tanlanadi. Vosita har bir test ishga tushirilishidan oldin ilova tilini avtomatik ravishda o'zgartiradi va barcha ko'rsatilgan tillarda suratlar oladi.

Tillarni sozlash

Tillar Screengrabfile da locales parametri bilan belgilanadi. Har bir til uchun Screengrab ilovani mos resurslar bilan qayta o'rnatadi va to'liq test siklini ishga tushiradi. Android da LocaleTestRule qurilma lokalini avtomatik o'zgartiradi.

ruby
# Screengrabfile
locales [
  "ru-RU",
  "en-US",
  "de-DE",
  "fr-FR",
  "es-ES",
  "ja-JP",
  "ko-KR"
]

Lokalizatsiya qilingan skrinshotlar uchun papka strukturasi

Screengrab kataloglarni quyidagi sxema bo'yicha yaratadi: screenshots/{locale}/{device_name}/{screenshot_name}.png. Bu struktura to'g'ridan-to'g'ri Google Play talablariga mos keladi, bu skrinshotlarni Fastlane deliver orqali bitta buyruq bilan yuklash imkonini beradi.

iOS uchun App Store Connect skrinshotlarni tillar bo'yicha tekis strukturada kutadi. Fastlane nashr qilish vaqtida Screengrab ierarxiyasini kerakli formatga avtomatik ravishda o'zgartiradi.

Screengrab ni CI/CD pipeline ga integratsiyasi

CI/CD integratsiyasi — Screengrab ning asosiy afzalliklaridan biri. Vosita buyruq satridan ishga tushiriladi va grafik interfeysni talab qilmaydi, bu uni server build-lari uchun ideal qiladi.

GitHub Actions

CI muhitida Android emulyatori yoki iOS simulyatorini ishga tushirish, so'ngra skrinshotlar bilan lane ni chaqirish kerak. GitHub Actions AVD keshlashni qo'llab-quvvatlaydi, bu takroriy ishga tushirishlarni tezlashtiradi.

CI uchun parametrlar

CI konfiguratsiyasida xotira va vaqt cheklovlarini hisobga olish muhim. Android emulyatorlari har bir qurilma uchun kamida 2 GB RAM talab qiladi va 7 tilda va 2 qurilmada to'liq ishga tushirish 20–40 daqiqa davom etadi.

ruby
# Fastfile — vaqt cheklovlari bilan CI lane
lane :ci_screenshots do
  capture_android_screenshots(
    locales: ["en-US", "ru-RU"],
    devices: ["pixel_6"],
    clear_previous_screenshots: true,
    tests_timeout: "600",
    output_directory: "screenshots/ci"
  )
end

Jenkins Pipeline

Jenkins uchun sh qadami bundle exec fastlane chaqiruvi bilan ishlatiladi. Ishga tushirish siklini sekinlashtirmaslik uchun skrinshotlarni kechasi yoki asosiy branch ga merge dan keyin trigger orqali ishga tushirish tavsiya etiladi.

Screengrab vs alternativlar: vositalarni solishtirish

Screengrab — skrinshotlarni avtomatlashtirish uchun yagona vosita emas. Turli yondashuvlarga ega alternativlar mavjud: operatsion tizimning o'rnatilgan vositalari, tijorat platformalari va kod ichida skrinshotlar uchun kutubxonalar.

VositaPlatformaLokalizatsiyaCI/CD
ScreengrabAndroid, iOSAvtomatikTabiiy
ADB ShellAndroidQo'ldaSkriptlar orqali
XCTestiOSQo'ldaxcodebuild orqali
Firebase Test LabAndroidSozlash talab qiladiHa
AppiumKross-platformaQo'ldaWebDriver orqali

ADB Shell to'liq nazorat beradi, lekin har bir stsenariy uchun skript yozishni talab qiladi. XCTest Xcode ga o'rnatilgan, lekin lokalizatsiyani avtomatik boshqarmaydi. Firebase Test Lab testlarni bulutdagi haqiqiy qurilmalarda ishga tushiradi, maksimal qamrov beradi, lekin har bir daqiqa uchun to'lov talab qiladi.

Screengrab kombinatsiya tufayli ustunlik qiladi: Fastlane build ning butun hayotiy siklini — kompilyatsiyadan nashrgacha boshqaradi. Google Play Screengrab papka strukturasini to'g'ridan-to'g'ri Fastlane deliver orqali qabul qiladi.

Oddiy muammolar va ularning yechimlari

Screengrab bilan ishlashda dasturchilar ko'pincha bir necha takrorlanadigan muammolarga duch kelishadi. Oddiy xatolarni bilish birinchi ishga tushirishda tuzatish vaqtini qisqartiradi.

Skrinshotlar bo'sh yoki qora chiqadi

Muammo Screengrab ekran renderlash tugashidan oldin surat olganida yuzaga keladi. Yechim — screenshot() chaqiruvidan oldin Thread.sleep() kechikishi qo'shish yoki asinxron operatsiyalarni kutish uchun Espresso dan IdlingResource ishlatish.

Versiya mos kelmasligi xatosi

Screengrab-lib kutubxonasi Fastlane versiyasiga mos kelishi kerak. Fastlane har oyda yangilanadi va eski kutubxona yangi konfiguratsiya parametrlarini qo'llab-quvvatlamasligi mumkin. Yechim — Gemfile va gradle.properties orqali versiyalarni sinxronlash.

CI da uzoq ishga tushish vaqti

5 qurilmada 30 tilda ishga tushirish bir soatdan ko'proq vaqt olishi mumkin. Yechim — ishga tushirishlarni ajratish: biri do'kon uchun barcha tillarda, ikkinchisi ichki ehtiyojlar uchun ikki tilda. GitHub Actions parallel ishga tushirishlar uchun strategiya matritsasidan foydalanish imkonini beradi.

CI da emulyator bilan muammolar

Android emulyatori har doim ham CI serverlarida mavjud bo'lmagan apparat virtualizatsiyasini talab qiladi. KVM yoqilgan bo'lishi kerak, aks holda emulyator ishga tushmaydi. Yechim — GPU tezlashtirishsiz x86 tasvirlari yoki Firebase Test Lab ishlatish.

Tez-tez beriladigan savollar

Screengrab oddiy ADB skrinshotidan nima bilan farq qiladi?

ADB hozirda ekranda ko'rsatilayotgan narsaning suratini oladi. Screengrab UI testlari bilan integratsiyalanadi, tillarni, qurilmalarni avtomatik o'zgartiradi va inson ishtirokisiz stsenariy bo'yicha bir qator suratlar oladi.

Screengrab ni Fastlane siz ishlatish mumkinmi?

Yo'q, Screengrab Fastlane ekotizimining komponenti bo'lib, uning infratuzilmasidan yig'ish, o'rnatish va muvofiqlashtirish uchun foydalanadi. screengrab-lib kutubxonasi alohida ishlamaydi — orkestrator sifatida Fastlane kerak.

10 tilda skrinshotlar generatsiyasi qancha vaqt oladi?

Bitta qurilmada 10 tilda ishga tushirish 15–25 daqiqa davom etadi. Har bir til ilovani qayta o'rnatish va to'liq UI test siklini talab qiladi. Bir nechta qurilmalarda parallel ishga tushirish vaqtni mutanosib ravishda qisqartiradi.

Screengrab iOS ilovalarini qo'llab-quvvatlaydimi?

Ha, Screengrab iOS ni XCTest va Xcode simulyatorlari orqali qo'llab-quvvatlaydi. Konfiguratsiya Android ga o'xshaydi: tillar, qurilmalar qo'shiladi va Swift da UI testlari XCTest va XCUIScreenshot orqali suratlar bilan yoziladi.

Faqat yangi tillar uchun skrinshotlarni qanday yangilash mumkin?

Screengrab o'sish rejimini qo'llab-quvvatlamaydi — har bir ishga tushirish to'liq skrinshotlar to'plamini yaratadi. Asosiy ishga tushirishdagi mavjud suratlarni qayta yozmaslik uchun CI uchun cheklangan tillar ro'yxati bilan alohida lane sozlash tavsiya etiladi.

Xulosa

  • Screengrab — Android va iOS uchun mobil ilovalar skrinshotlarini avtomatlashtirish uchun Fastlane komponenti.
  • Avtomatlashtirish yuzlab skrinshotlarni qo'lda yaratishni terminaldagi bitta buyruq bilan almashtiradi.
  • Lokalizatsiya — vosita har bir test ishga tushirilishidan oldin ilova tilini avtomatik o'zgartiradi.
  • CI/CD — Jenkins, GitHub Actions, GitLab CI va grafik interfeysi bo'lmagan boshqa pipeline lar bilan integratsiya.
  • Struktura chiqish fayllari to'g'ridan-to'g'ri yuklash uchun Google Play va App Store talablariga mos keladi.
  • Moslashuvchanlik — bir nechta qurilmalar, ekran orientatsiyalari va moslashtirilgan test stsenariylarini qo'llab-quvvatlash.
  • Tejamkorlik — har bir yangilanishda bir necha soatlik qo'l mehnati o'rniga 15 daqiqada yuzta skrinshot.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing