Screengrab (Fastlane) — یہ کیا ہے، فوائد اور اسکرین شاٹ خودکاری

مصنف: IT Sectr اشاعت: 2026-04-15 مطالعے کا وقت: 8 منٹ

Screengrab Fastlane اکوسسٹم کا ایک مفید پروگرام ہے جو Android اور iOS پر موبائل ایپلیکیشنز کے لیے اسکرین شاٹ بنانے کو خودکار بناتا ہے۔ درجنوں آلات پر دستی طور پر سکرینوں کو سکرول کرنے کے بجای، ڈیویلپر ایک کمانڈ چلاتا ہے اور Screengrab خود بخود سب ضروری سکرینوں کی تصویریں لے لیتا ہے۔ Fastlane Docs, 2026 کے مطابق، یہ پروگرام ایک ساتھ 30 زبانوں اور ترتیب میں متعین کی گئی کسی بھی سکرین ریزولیوشن کو سپورٹ کرتا ہے۔

اہم نکات

  • Screengrab — Android اور iOS پر موبائل ایپلیکیشنز کے لیے خودکار اسکرین شاٹ بنانے کا ایک Fastlane پروگرام۔
  • خودکاری سیڨڈرہ اسکرین شاٹ کی دستی تیاری کو ٹرمینل میں ایک کمانڈ سے بدل دیتی ہے۔
  • لوکائیزیشن — بغیر کسی اضافی ترتیب کے درجنوں زبانوں میں باک ایک ساتھ اسکرین شاٹ جینریٹ کرنا۔
  • CI/CD — کسی بھی پائپ لائن کے ساتھ انضمام: Jenkins, GitHub Actions, GitLab CI۔
  • لچکپن — ایک ران میں کئی آلات، وایئریشنز اور زبانوں کی معاونت۔

Screengrab کیا ہے اور کیوں ضروری ہے

Screengrab Fastlane اکوسسٹم کا ایک جز ہے جو موبائل ایپلیکیشنز کے لیے خودکار اسکرین شاٹ بنانے کے لیے ڈیزائن کیا گیا ہے۔ یہ پروگرام 2015 میں ایک مسئلے کے جواب میں سامنے آیا: Google Play اور App Store پر شائع کرنے کے لیے فی زبان 4 سے 10 اسکرین شاٹ درکار ہیں۔ 30 زبانوں کی معاونت کے ساتھ، یہ 120–300 دستی تصویروں کے برابر ہے۔

دستی اسکرین شاٹ بنانے کا مسئلہ

ایک ڈیویلپر دستی طور پر سیمیولیٹر یا آلہ پر ایپلیکیشن شروع کرتا ہے، مطلوبہ سکرین پر جاتا ہے، اسکرین شاٹ لیتا ہے، کمپیوٹر پر منتقل کرتا ہے، کراپ کرتا ہے اور صحیح فائل میں محفوظ کرتا ہے۔ یہ عمل ہر زبان اور ہر وایئریشن کے لیے دوہرایا جاتا ہے۔ Google Play Console کے مطابق، اوسط ایپلیکیشن ہر دو ہفتے میں اپڈیٹ ہوتا ہے، جو اسکرین شاٹ کو ایک مامولی روٹین بنا دیتا ہے۔

خودکاری کے فوائد

Screengrab مسئلے کو بنیادی طور پر حل کرتا ہے: ڈیویلپر UI فریم ورک (Android کے لیے Espresso، iOS کے لیے XCTest) استعمال کرکے ٹیسٹ مناظر کی وضاحت کرتا ہے، اور Screengrab انہیں تمام ضروری آلات اور زبانوں پر خودکار طور پر چلاتا ہے۔ Fastlane عمل کو ہم آہنگ کرتا ہے: ایپلیکیشن بناتا ہے، ٹیسٹ چلاتا ہے، اسکرین شاٹ جمع کرتا ہے اور انہیں مطلوبہ فائل کے چھٹے میں پیک کرتا ہے۔

نتیجہ — کئی گھنٹے دستی کام کے بجای 10–15 منٹ میں سو اسکرین شاٹ۔ Google ہر اہم UI تبدیلی کے ساتھ اسکرین شاٹ اپڈیٹ کرنے کی سفارش کرتا ہے، اور خودکاری کے بغیر یہ مشورہ اکسر نظرانداز کر دیا جاتا ہے۔

Screengrab کیسے کام کرتا ہے: آرکی ٹیکچر اور کارکردگی کا اصول

Screengrab کا آرکی ٹیکچر دو اہم اجزاء کے ارد گرد بنا ہے: آلہ پر ایک کلائنٹ (screengrab-lib) اور ایک رنر جو ٹیسٹ کے انجام اور نتائج کی وصول کا انتظام کرتا ہے۔ Android پر، یہ انسٹرومینٹڈ ٹیسٹ فریم ورک استعمال کرتا ہے; iOS پر — XCTest۔

ایک ران کا لائف سائکل

Fastlane screengrab ایکشن کو کال کرتا ہے، جو Screengrabfile ترتیب کی فائل کو پڑھتا ہے۔ رنر screengrab-lib لائبریری کے ساتھ ٹیسٹ APK بناتا ہے، اسے منسلک آلات یا ایمیولیٹرز پر انسٹل کرتا ہے، اور اسکرین شاٹ کے لیے انوٹیشن سے نشان شدہ UI ٹیسٹ چلاتا ہے۔

ruby
# Fastfile — اسکرین شاٹ کے لیے lane کی وضاحت
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

آؤٹ پوٹ فائل کی ترتیب

Screengrab ایک فائل درجہ بندی بناتا ہے: زبان → آلہ → اسکرین شاٹ۔ یہ ترتیب Google Play Console اور App Store Connect کی ضرورتوں سے مکمل طور پر مل کھاتی ہے۔ App Store کو ہر قسم کے آلہ کے لیے مطلق طور پر متعین سائز درکار ہیں، اور Screengrab سپشفکیشنز کے عین مطابق تصویریں بناتا ہے۔

مالٹی ڈائیوس کی معاونت

یہ پروگرام منسلک تمام آلات اور ایمیولیٹرز پر متوازی طور پر ٹیسٹ چلا سکتا ہے۔ Android ایمیولیٹرز اگر فعال نہیں ہیں تو خودبخود شروع ہو جاتے ہیں۔ iOS کے لیے، Screengrab Xcode سیمیولیٹرز استعمال کرتا ہے۔

Android کے لیے Screengrab کی تنصیب اور ترتیب

Screengrab کی تنصیب دو حصوں پر مشتمل ہے: لائبریری کو منصوبہ میں شامل کرنا اور ترتیب کی فائل کو ترتیب دینا۔ Android پر، Espresso UI فریم ورک اور Fastlane ریپوزیٹری سے screengrab-lib لائبریری درکار ہے۔

انحصارات کا اضافہ

ایپلیکیشن ماڈیول کے build.gradle میں، screengrab-lib انحصار شامل کیا جاتا ہے۔ لائبریری ScreenCapturer کلاس فراہم کرتی ہے، جو کال کے وقت اسکرین شاٹ لیتا ہے۔

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

اسکرین شاٹ کے ساتھ ٹیسٹ لکھنا

ایک UI ٹیسٹ کو ضروری مقامات پر Screengrab.screenshot() انوٹیشن سے نشان کیا جاتا ہے۔ ہر کال موجودہ سکرین کو کیپچر کرتا ہے اور اسے متعین نام سے محفوظ کرتا ہے۔

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")
        // اقدامات: لاگ ان بٹن پر ٹاپ کریں
        Screengrab.screenshot("login_screen")
    }
}

Screengrabfile ترتیب

Screengrabfile فائل لانچ پیرامیٹرز محفوظ کرتی ہے: آلات کی فہرست، زبانیں، وقتی حدود اور محفوظ کرنے کا راستہ۔ یہ فائل عام طور پر Fastfile کے پاس fastlane فائل میں واقع ہوتی ہے۔

اسکرین شاٹ لوکائیزیشن اور کئی زبانیں

لوکائیزیشن Screengrab کی کلیڈی خوبی ہے، اور بنیادی وجہ کے کئی اسے اکثر چونا جاتا ہے۔ یہ پروگرام ہر ٹیسٹ ران سے پہلے خودبخود ایپلیکیشن کی زبان بدلتا ہے اور متعین کردہ تمام زبانوں میں اسکرین شاٹ لیتا ہے۔

زبان کی ترتیب

زبانیں Screengrabfile میں locales پیرامیٹر استعمال کرکے مقرر کی جاتی ہیں۔ ہر زبان کے لیے، Screengrab مناسب وسائل کے ساتھ ایپلیکیشن کو دوبارہ انسٹل کرتا ہے اور مکمل ٹیسٹ سائکل چلاتا ہے۔ Android پر LocaleTestRule خودبخود آلہ کی مقامی ترتیب کو بدل دیتا ہے۔

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

مقامی شدہ اسکرین شاٹ کے لیے فائل کی ترتیب

Screengrab اس اسکیم کے مطابق ڈائریکٹریز بناتا ہے: screenshots/{locale}/{device_name}/{screenshot_name}.png۔ یہ ترتیب سیدھے Google Play کی ضرورتوں سے مل کھاتی ہے، جو Fastlane deliver کے ذریعہ ایک کمانڈ میں اسکرین شاٹ اپلوڈ کرنے کی اجازت دیتی ہے۔

iOS کے لیے، App Store Connect زبان کے اعتبار سے ایک چٹپٹی ترتیب میں اسکرین شاٹ کی توقع کرتا ہے۔ Fastlane اشاعہ کے وقت Screengrab درجہ بندی کو خودبخود مطلوبہ فارمیٹ میں تبدیل کر دیتا ہے۔

CI/CD پائپ لائن میں Screengrab کو ضم کرنا

CI/CD انضمام Screengrab کے اهم فوائد میں سے ایک ہے۔ یہ پروگرام کمانڈ لائن سے چلتا ہے اور گرافیکل اینٹرفیس کی ضرورت نہیں ہے، جو اسے سرور بائلڈز کے لیے موزوں بناتا ہے۔

GitHub Actions

CI ماحول میں، آپ کو ایک Android ایمیولیٹر یا iOS سیمیولیٹر شروع کرنا ہوگا، پھر اسکرین شاٹ کے ساتھ lane کو کال کریں۔ GitHub Actions AVD کیشنگ کو سپورٹ کرتا ہے، جو دوہرائی ران کو تیز کرتا ہے۔

CI کے لیے پیرامیٹرز

CI ترتیب میں، میموری اور وقت کی پابندیوں پر غور کرنا ضروری ہے۔ Android ایمیولیٹرز کو فی آلہ کم سے کم 2 GB RAM کی ضرورت ہے، اور 7 زبانوں اور 2 آلات پر ایک مکمل ران میں 20–40 منٹ لگتے ہیں۔

ruby
# Fastfile — وقتی حدود کے ساتھ 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 کے لیے، bundle exec fastlane کے کال کے ساتھ sh مرحلہ استعمال کیا جاتا ہے۔ ترقی کے چکر کو سست نہ کرنے کے لیے رات میں یا مین برانچ میں مرج کرنے کے بعد ٹرگر کے ذریعہ اسکرین شاٹ چلانے کی سفارش کی جاتی ہے۔

Screengrab بنام متبادل: آلات کا موازنہ

Screengrab اسکرین شاٹ خودکاری کا واحد آلہ نہیں ہے۔ مختلف طریقوں کے ساتھ متبادل موجود ہیں: مضمن OS آلات، تجارتی پلیٹ فارمز، اور کوڈ میں اسکرین شاٹ لائبریریز۔

آلہپلیٹ فارملوکائیزیشنCI/CD
ScreengrabAndroid, iOSخودکارمقامی
ADB ShellAndroidدستیاسکریپٹ کے ذریعہ
XCTestiOSدستیxcodebuild کے ذریعہ
Firebase Test LabAndroidترتیب درکارہاں
Appiumکروس پلیٹ فارمدستیWebDriver کے ذریعہ

ADB Shell مکمل کنٹرول دیتا ہے لیکن ہر منظر کے لیے اسکریپٹ لکھنے کی ضرورت ہے۔ XCTest Xcode میں ضم ہے لیکن لوکائیزیشن کو خودکار طور پر منتظم نہیں کرتا۔ Firebase Test Lab کلاؤڈ میں حقیقی آلات پر ٹیسٹ چلاتا ہے، مکمل کور فراہم کرتا ہے، لیکن فی منٹ چارج کرتا ہے۔

Screengrab امتزاج کی وجہ سے جیتتا ہے: Fastlane تامیر سے اشاعہ تک تمام بائلڈ لائف سائکل کا انتظام کرتا ہے۔ Google Play Fastlane deliver کے ذریعہ Screengrab فائل کی ترتیب کو سیدھے قبول کرتا ہے۔

عام مسائل اور ان کے حل

Screengrab کے ساتھ کام کرتے وقت، ڈیویلپرز کو اکثر کئی دوہرائی مسائل کا سامنا کرنا پڑتا ہے۔ عام غلطیوں کو جاننا پہلی ران پر ڈیبگنگ کا وقت کم کرتا ہے۔

اسکرین شاٹ خالی یا کالے آتے ہیں

مسئلہ اس وقت ہوتا ہے جب Screengrab سکرین رینڈرنگ مکمل ہونے سے پہلے اسکرین شاٹ لیتا ہے۔ حل screenshot() کو کال کرنے سے پہلے Thread.sleep() تاخیر شامل کرنا یا غیر هم آهنگ کارروائیوں کا انتظار کرنے کے لیے Espresso کے IdlingResource کا استعمال کرنا ہے۔

ورژن مطابقت کی غلطی

screengrab-lib کا ورژن Fastlane کے ورژن سے ملنا چاہیے۔ Fastlane ماہانہ اپڈیٹ ہوتا ہے، اور پرانی لائبریری نئے ترتیب کے پیرامیٹرز کو سپورٹ نہ کر سکتی۔ حل Gemfile اور gradle.properties کے ذریعہ ورژنز کو ہم آهنگ کرنا ہے۔

CI پر طویل ران کا وقت

5 آلات پر 30 زبانوں میں ران کو ایک گھنٹے سے زیادہ وقت لگ سکتا ہے۔ حل ران کو تقسیم کرنا ہے: ایک تمام زبانوں میں اسٹور کے لیے، دوسرا دو زبانوں میں اندرونی ضرورتوں کے لیے۔ GitHub Actions متوازی ران کے لیے میٹرکس حکم عملی کے استعمال کی اجازت دیتا ہے۔

CI پر ایمیولیٹر کے مسائل

Android ایمیولیٹر کو ہارڈویئر ورچوئل ائیشن کی ضرورت ہے، جو CI سرورز پر ہمیشہ میسر نہیں ہوتا۔ KVM کو چالو کرنا چاہیے، ورنہ ایمیولیٹر شروع نہیں ہوگا۔ حل GPU اکسیلریشن کے بغیر x86 امیجز یا Firebase Test Lab استعمال کرنا ہے۔

اکثر پوچے جانے والے سوالات

Screengrab ADB کے ذریعہ ایک عام اسکرین شاٹ سے کیسے مختلف ہے؟

ADB اس وقت سکرین پر جو کځھ بھی چے کا سکرین شاٹ لیتا ہے۔ Screengrab UI ٹیسٹز کے ساتھ ضم ہوتا ہے، خودبخود زبانیں اور آلات بدلتا ہے، اور انسانی مداخلت کے بغیر ایک منظر کے مطابق اسکرین شاٹ کا ایک سلسلہ لیتا ہے۔

کیا Screengrab کو Fastlane کے بغیر استعمال کیا جا سکتا ہے؟

نہیں، Screengrab Fastlane اکوسسٹم کا ایک جز ہے اور بنانے، انسٹل کرنے اور ہم آهنگی کے لیے اس کے بنیادی چھٹے کو استعمال کرتا ہے۔ screengrab-lib لائبریری الگ سے نہیں چلائی جا سکتی — آرکیسٹریٹر کے طور پر Fastlane زروری ہے۔

10 زبانوں میں اسکرین شاٹ تیار کرنے میں کتنا وقت لگتا ہے؟

ایک آلہ پر، 10 زبانوں میں ایک ران میں 15–25 منٹ لگتے ہیں۔ ہر زبان کے لیے ایپلیکیشن کو دوبارہ انسٹل کرنا اور UI ٹیسٹ کا مکمل چکر چلانا ضروری ہے۔ کئی آلات پر متوازی عمل کرنا وقت کو متناسب طور پر کم کرتا ہے۔

کیا Screengrab iOS ایپلیکیشنز کو سپورٹ کرتا ہے؟

جی ہاں، Screengrab XCTest اور Xcode سیمیولیٹرز کے ذریعہ iOS کو سپورٹ کرتا ہے۔ ترتیب Android کی طرح ہے: زبانیں اور آلات شامل کیئے جاتے ہیں، اور Swift میں UI ٹیسٹز XCTest استعمال کرکے XCUIScreenshot کے ذریعہ کیپچر کے ساتھ لیکھے جاتے ہیں۔

صرف نئی زبانوں کے لیے اسکرین شاٹ کیسے اپڈیٹ کریں؟

Screengrab انکریمنٹل موڈ کو سپورٹ نہیں کرتا — ہر ران اسکرین شاٹ کا ایک مکمل سیٹ تیار کرتا ہے۔ مرکزی ران سے موجودہ کیپچرز کو اووررائٹ کرنے سے بچنے کے لیے محدود زبانوں کی فہرست کے ساتھ CI کے لیے ایک علاحدہ lane مقرر کرنے کی سفارش کی جاتی ہے۔

خلاصہ

  • Screengrab — Android اور iOS پر موبائل ایپلیکیشنز کے اسکرین شاٹ کو خودکار بنانے کا ایک Fastlane جز۔
  • خودکاری سیڨڈرہ اسکرین شاٹ کی دستی تیاری کو ایک ٹرمینل کمانڈ سے بدل دیتی ہے۔
  • لوکائیزیشن — پروگرام ہر ٹیسٹ ران سے پہلے خودبخود ایپلیکیشن کی زبان بدلتا ہے۔
  • CI/CD — گرافیکل اینٹرفیس کے بغیر Jenkins، GitHub Actions، GitLab CI اور دوسرے پائپ لائنز کے ساتھ انضمام۔
  • ترتیب آؤٹ پوٹ فائلوں کی سیدھے اپلوڈ کے لیے Google Play اور App Store کی ضرورتوں سے مل کھاتی ہے۔
  • لچکپن — کئی آلات، سکرین وایئریشنز اور کسٹٹم ٹیسٹ مناظر کی معاونت۔
  • بچت — ہر اپڈیٹ کے ساتھ کئی گھنٹے دستی کام کے بجای 15 منٹ میں سو اسکرین شاٹ۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں