Snapshot (Fastlane) — جوہر، اسکرین شاٹ جنریشن اور موبائل ایپس میں سیٹ اپ

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

Snapshot (Fastlane) تمام معاون آلات اور زبانوں پر iOS ایپس کے خودکار اسکرین شاٹ جنریشن کا ایک ٹول ہے۔ سمیلیٹر کے ذریعے دستی اسکرین شاٹ بنانے کے برعکس، Snapshot UI ٹیسٹ چلاتا ہے اور ایپ کے مخصوص پوائنٹس پر اسکرین شاٹس لیتا ہے۔ سرکاری Fastlane دستاویزات (2026) کے مطابق، Snapshot ریلیز کے لیے اسکرین شاٹس کی تیاری کا وقت 4 گھنٹے سے کم کرکے 15 منٹ کر دیتا ہے۔

اہم نکات

  • Snapshot تمام آلات اور زبانوں پر UI ٹیسٹ کے ذریعے iOS ایپس کے خودکار اسکرین شاٹس بنانے کے لیے Fastlane کی ایک افادیت ہے۔
  • یہ ٹول XCTest UI ٹیسٹ کے ساتھ ضم ہوتا ہے: ڈویلپر ایپ کی اہم اسکرینوں پر تصاویر حاصل کرنے کے لیے ٹیسٹ کوڈ میں snapshot() کمانڈز شامل کرتا ہے۔
  • Snapshot App Store کے لیے درکار iPhone اور iPad ڈیوائس کے تمام سائز کو سپورٹ کرتا ہے: 6.5، 5.5، 6.7، 12.9 انچ اور دیگر اسکرین فارمیٹس۔
  • کنفیگریشن Snapfile فائل کے ذریعے کی جاتی ہے، جہاں جنریشن کے لیے آلات، زبانیں، لوکلائزیشن اور سمیلیٹر لانچ کے پیرامیٹرز بتائے جاتے ہیں۔
  • نتائج screenshots/ ڈائریکٹری میں محفوظ ہوتے ہیں، جو Deliver کے ساتھ مطابقت رکھتے ہیں — اسکرین شاٹس اضافی پروسیسنگ کے بغیر App Store پر اپ لوڈ کے لیے تیار ہیں۔

Snapshot (Fastlane) کیا ہے؟

Snapshot (Fastlane) Fastlane ماحولیاتی نظام کا ایک جزو ہے جو App Store کے لیے ایپ اسکرین شاٹس بنانے کو خودکار بناتا ہے۔ یہ iOS سمیلیٹروں پر UI ٹیسٹ چلاتا ہے، ایپ کی مخصوص حالتوں میں اسکرین شاٹس لیتا ہے اور انہیں ہر زبان اور ڈیوائس کے لیے درست ناموں کے ساتھ ایک منظم ڈائریکٹری میں محفوظ کرتا ہے۔

Snapshot کے بغیر، ڈویلپر دستی طور پر سمیلیٹر شروع کرتے ہیں، ہر اسکرین کھولتے ہیں، Cmd+S کے ذریعے اسکرین شاٹ لیتے ہیں، زبان تبدیل کرتے ہیں اور تمام مجموعوں کے لیے عمل دہراتے ہیں۔ اسکرین شاٹ آٹومیشن ASO اصلاح کا ایک اہم عنصر ہے، کیونکہ App Store کو ہر نئی ریلیز کے لیے تازہ ترین اسکرین شاٹس درکار ہوتے ہیں، اور 60+ اسکرین شاٹس کو دستی طور پر اپ ڈیٹ کرنے میں گھنٹوں کام لگتا ہے۔

App Store Connect دستاویزات (2025) کے مطابق، مقامی بنائے گئے اسکرین شاٹس والی ایپس کو ہدف والے ممالک میں 25% زیادہ تبدیلیاں ملتی ہیں۔ Snapshot ٹیموں کو ایک رن میں 32 زبانوں کے لیے بصری مواد اپ ڈیٹ کرنے کی اجازت دیتا ہے، جو ایپ کی نئی خصوصیات سے منسلک مارکیٹنگ مہمات کے لیے خاص طور پر اہم ہے۔

کسی بھی پروجیکٹ میں Snapshot استعمال کریں جو App Store پر شائع ہوتا ہے — یہ ریلیز کے عمل کو خودکار بنانے اور ASO کو بہتر بنانے کے خواہاں ٹیموں کے لیے معیاری ٹول ہے۔

Snapshot اسکرین شاٹس کیسے بناتا ہے

Snapshot میں اسکرین شاٹ جنریشن کا عمل کئی مراحل پر مشتمل ہے: UI ٹیسٹ کی تیاری، Snapfile کی ترتیب، سمیلیٹروں کا آغاز اور نتائج جمع کرنا۔ Snapshot مخصوص آلات اور زبانوں کے لیے ترتیب وار ہر سمیلیٹر شروع کرتا ہے، UI ٹیسٹ چلاتا ہے اور ان پوائنٹس پر اسکرین شاٹس لیتا ہے جہاں snapshot() فنکشن کال کیا جاتا ہے۔

تمام ٹیسٹ مکمل ہونے کے بعد، Snapshot App Store کی ضروریات کو پورا کرنے والے ناموں کے ساتھ screenshots/[Language]/ ڈائریکٹری میں اسکرین شاٹس جمع کرتا ہے۔ ہر اسکرین شاٹ PNG فارمیٹ میں ہدف ڈیوائس سے مماثل ریزولوشن کے ساتھ محفوظ کیا جاتا ہے۔ Snapshot تمام بنائے گئے اسکرین شاٹس کی بصری تصدیق کے لیے ایک HTML رپورٹ بھی تیار کرتا ہے۔

Snapshot کے لیے UI ٹیسٹ ترتیب دینا

Snapshot کے کام کرنے کے لیے، ایپ کے XCTest UI ٹیسٹ کوڈ میں snapshot() کالز شامل کرنا ضروری ہے۔ فنکشن کال کے وقت موجودہ اسکرین حالت کا اسکرین شاٹ لیتا ہے۔ ڈویلپر ہر اہم عمل (اسکرین کھولنا، ڈیٹا داخل کرنا، ٹیبز کے ذریعے نیویگیٹ کرنا یا نتائج دکھانا) کے بعد snapshot() رکھتا ہے۔

UI ٹیسٹ ڈھانچے کی مثال: ٹیسٹ ایپ میں لاگ ان کرتا ہے، لاگ ان اسکرین کیپچر کرنے کے لیے snapshot("01-LoginScreen") کال کرتا ہے، پھر ہوم اسکرین پر جاتا ہے اور ہوم اسکرین کیپچر کرنے کے لیے snapshot("02-HomeScreen") کال کرتا ہے۔ XCTest iOS ایپس کے یونٹ اور UI ٹیسٹنگ کے لیے Apple کا فریم ورک ہے، جو براہ راست Xcode میں ضم ہے۔

objective-c
// Snapshot کے لیے UI ٹیسٹ
- (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 میں بتائی گئی ہر زبان کے لیے سمیلیٹر کی زبان تبدیل کرتا ہے۔ ایپ متعلقہ لوکلائزیشن کے ساتھ شروع ہوتی ہے اور UI ٹیسٹ اس زبان میں چلتے ہیں۔ اسکرین شاٹ لوکلائزیشن ASO کا ایک اہم عنصر ہے: 75% معاملات میں صارفین اپنی مادری زبان میں مواد والی ایپس کو ترجیح دیتے ہیں، بشمول App Store میں اسکرین شاٹس۔

ہر ڈیوائس کے لیے، Snapshot متعلقہ اسکرین سائز کے ساتھ ایک علیحدہ سمیلیٹر شروع کرتا ہے۔ App Store کے لیے درکار تمام سائز سپورٹ ہیں: iPhone 6.5 انچ (iPhone 15 Pro Max)، 5.5 انچ (iPhone 8 Plus)، 6.7 انچ (iPhone 15 Plus) اور iPad 12.9 انچ۔ iOS سمیلیٹر ایک iOS ڈیوائس کا سافٹ ویئر ایمولیشن ہے جو Xcode میں بنایا گیا ہے تاکہ فزیکل ڈیوائس کے بغیر ایپس کی جانچ کی جا سکے۔

bash
# تمام آلات اور زبانوں کے لیے اسکرین شاٹس بنائیں
fastlane snapshot

# صرف مخصوص آلات کے لیے بنائیں
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"

# اسکرین شاٹ جنریشن سے پہلے صاف کریں
fastlane snapshot --reinstall_app --erase_simulator

Snapfile کے ذریعے Snapshot کنفیگریشن

Snapfile ایک Fastlane کنفیگریشن فائل ہے جو اسکرین شاٹ جنریشن پیرامیٹرز (ڈیوائس کی فہرست، زبانیں، ٹائم آؤٹ اور لانچ کے اختیارات) کی وضاحت کرتی ہے۔ Snapfile fastlane ڈائریکٹری میں محفوظ ہوتی ہے اور پروجیکٹ کے ساتھ ورژن ہوتی ہے، جو ٹیم کے تمام اراکین کے لیے متحد کنفیگریشن کو یقینی بناتی ہے۔

ruby
# Snapfile — اسکرین شاٹ کنفیگریشن
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 پیرامیٹر جنریشن شروع کرنے سے پہلے پرانے اسکرین شاٹس کو حذف کرتا ہے — یہ آؤٹ پٹ ڈائریکٹری میں پرانے اسکرین شاٹس کے جمع ہونے کو روکتا ہے۔ reinstall_app ہر رن سے پہلے سمیلیٹر پر ایپ کو دوبارہ انسٹال کرتا ہے، جو نئی جنریشن پر پچھلے ٹیسٹوں کے اثر کے بغیر ایک صاف سیشن کو یقینی بناتا ہے۔

erase_simulator پیرامیٹر ٹیسٹ شروع کرنے سے پہلے سمیلیٹر کے مواد کو صاف کرتا ہے — بشمول کیشے، سیٹنگز اور پچھلے سیشنوں کا ڈیٹا۔ یہ خاص طور پر ان ٹیسٹوں کے لیے اہم ہے جو آن بورڈنگ یا ایپ کے پہلے لانچ کی جانچ کرتے ہیں۔ Snapshot سمیلیٹر پر iOS ورژن بتانے کے لیے ios_version پیرامیٹر اور پہلی UI ٹیسٹ غلطی پر جنریشن روکنے کے لیے stop_after_first_error کو بھی سپورٹ کرتا ہے۔

SwiftUI پروجیکٹس کے لیے، use_simulator_for_language پیرامیٹر دستیاب ہے، جو سسٹم ریجن تبدیل کرنے کے بجائے سمیلیٹر سیٹنگز کے ذریعے زبان کی تبدیلی کو کنٹرول کرتا ہے۔ Snapshot ایپ شروع کرتے وقت اضافی دلائل دینے کے لیے launch_arguments کو بھی سپورٹ کرتا ہے — مختلف بیک اینڈ کنفیگریشنز یا A/B ٹیسٹوں والے ٹیسٹوں کے لیے مفید۔

اسکرین شاٹس بنانے کے لیے Snapshot کمانڈز

Snapshot انٹرفیس میں جنریشن شروع کرنے کے لیے بنیادی کمانڈز اور عمل پر قطعی کنٹرول کے لیے توسیعی جھنڈے شامل ہیں۔ مرکزی کمانڈ fastlane snapshot Snapfile کنفیگریشن کی بنیاد پر مکمل اسکرین شاٹ جنریشن سائیکل چلاتی ہے۔

فوری جنریشن اور فلٹرنگ

کمانڈ fastlane snapshot --devices "iPhone 15" صرف مخصوص آلات کے لیے اسکرین شاٹس بناتی ہے، Snapfile سے باقی کو نظر انداز کرتی ہے۔ --languages "en-US,ru" جنریشن کے لیے زبانوں کو فلٹر کرتا ہے۔ ان جھنڈوں کا مجموعہ ایک ڈیوائس اور زبان پر مکمل جنریشن سائیکل کے بغیر فوری اسکرین شاٹ چیک کرنے کے لیے مفید ہے، جو 5 آلات اور 10 زبانوں کے لیے 30 منٹ تک لگ سکتا ہے۔

bash
# ایک ڈیوائس کے لیے فوری جنریشن
fastlane snapshot --devices "iPhone 15" --languages "en-US"

# ایپ دوبارہ انسٹال کر کے بنائیں
fastlane snapshot --reinstall_app --erase_simulator

# HTML رپورٹ کے ساتھ بنائیں
fastlane snapshot --output_directory "./build/screenshots"

--output_directory جھنڈا نتائج کی محفوظ کرنے کی ڈائریکٹری کو تبدیل کرتا ہے۔ ڈیفالٹ طور پر، Snapshot اسکرین شاٹس fastlane/screenshots میں محفوظ کرتا ہے۔ Deliver کے ساتھ انضمام کے لیے، ایک ڈائریکٹری بتائیں جو متوقع Deliverfile ساخت سے مماثل ہو — یہ فولڈرز کے درمیان دستی فائل کاپی کیے بغیر اسکرین شاٹس کو براہ راست اشاعت کے عمل میں منتقل کرنے کی اجازت دیتا ہے۔

Snapshot پیرامیٹرمقصدمثال
devicesجنریشن کے لیے آلات کی فہرستiPhone 15, iPad Pro
languagesلوکلائزیشن زبانوں کی فہرستen-US, ru, de-DE
reinstall_appٹیسٹ سے پہلے ایپ دوبارہ انسٹال کریںtrue / false
erase_simulatorلانچ سے پہلے سمیلیٹر صاف کریںtrue / false
clear_previousپرانے اسکرین شاٹس حذف کریںtrue / false

CI/CD پائپ لائن میں Snapshot کا انضمام

CI/CD میں Snapshot ہر ریلیز commit کے ساتھ خودکار اسکرین شاٹ جنریشن ہے۔ Snapshot Deliver مرحلے سے پہلے چلتا ہے تاکہ یہ یقینی بنایا جا سکے کہ App Store میں اسکرین شاٹس موجودہ ایپ ورژن سے مماثل ہیں اور پچھلے ورژنز کے پرانے UI عناصر شامل نہیں ہیں۔

CI میں Snapshot کے کام کرنے کے لیے، Xcode میں iOS سمیلیٹر انسٹال ہونا ضروری ہے۔ CI ماحول میں، Snapshot Xcode کے سمیلیٹر استعمال کرتا ہے، جو رنر پر پہلے سے لوڈ ہوتے ہیں۔ GitHub Actions اضافی سیٹ اپ کے بغیر UI ٹیسٹ چلانے کے لیے پہلے سے انسٹال Xcode اور iOS سمیلیٹر کے ساتھ امیجز فراہم کرتا ہے۔

bash
# CI ماحول میں Snapshot چلائیں
fastlane snapshot --skip_open_summary \

      --output_directory "$CI_PROJECT_DIR/screenshots"

# اسکرین شاٹس کو CI آرٹیفیکٹ کے طور پر محفوظ کریں
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"

--skip_open_summary پیرامیٹر جنریشن کے بعد HTML رپورٹ کھولنے کو غیر فعال کرتا ہے — CI ماحول میں گرافیکل انٹرفیس دستیاب نہیں ہے۔ جنریشن کے نتائج ایک ڈائریکٹری میں محفوظ ہوتے ہیں جو CI ٹاسک آرٹیفیکٹ کے طور پر منتقل ہوتی ہے اور پھر Deliver ریلیز کے ساتھ App Store پر اپ لوڈ کرنے کے لیے استعمال کرتا ہے۔

CI پائپ لائن کو تیز کرنے کے لیے، concurrent_simulators کے ذریعے متوازی اسکرین شاٹ جنریشن استعمال کریں — ایک Snapfile پیرامیٹر جو ایک ساتھ متعدد سمیلیٹر شروع کرتا ہے۔ یہ 4 متوازی تھریڈ استعمال کرتے ہوئے 5 آلات اور 10 زبانوں کے لیے اسکرین شاٹ جنریشن کا وقت 40 منٹ سے کم کرکے 15 منٹ کر دیتا ہے۔

Snapshot کے ساتھ کام کرتے وقت عام غلطیاں

Snapshot استعمال کرتے وقت، ڈویلپرز اکثر UI ٹیسٹ عدم استحکام، سمیلیٹر مسائل اور غلط ڈیوائس کنفیگریشن سے متعلق غلطیوں کا سامنا کرتے ہیں۔ Snapshot میں غلطی کی تشخیص HTML رپورٹ کے تجزیہ سے شروع ہوتی ہے، جس میں ہر مرحلے کے اسکرین شاٹس اور ناکام ٹیسٹوں کے بارے میں معلومات ہوتی ہیں۔

غلطی "Failed to build scheme MyAppUITests" اس وقت ہوتی ہے جب UI ٹیسٹ اسکیم بلڈ کے لیے ترتیب نہ دی گئی ہو۔ حل: یقینی بنائیں کہ Xcode میں UI ٹیسٹ کے لیے ایک علیحدہ Scheme بنائی گئی ہے اور کمانڈ لائن تک رسائی کے لیے Shared آپشن فعال ہے۔ Xcode Scheme ایپ کے لیے بلڈ، ٹیسٹ اور رن کنفیگریشن ہے جو ہر عمل کے لیے اہداف اور پیرامیٹرز کا سیٹ طے کرتی ہے۔

غلطی "No simulators found matching..." اس بات کی نشاندہی کرتی ہے کہ مخصوص ڈیوائس کی قسم یا iOS ورژن والا کوئی سمیلیٹر موجود نہیں ہے۔ حل: سمیلیٹر بنانے کے لیے xcrun simctl create چلائیں یا xcrun simctl list فہرست سے موجودہ ڈیوائس بتائیں۔ xcrun simctl iOS سمیلیٹر (بنانا، حذف کرنا، شروع کرنا، تشخیص) کے انتظام کے لیے Xcode کمانڈ لائن افادیت ہے۔

غلطی "UI test failure" کے لیے UI ٹیسٹ کسی ایک زبان یا ڈیوائس پر ناکام ہوتا ہے۔ حل: --stop_after_first_error جھنڈے کے ساتھ Snapshot چلائیں، پہلی غلطی پر رکیں، HTML رپورٹ میں اسکرین شاٹ کا تجزیہ کریں اور ٹیسٹ ٹھیک کریں۔ ایک عام وجہ مختلف زبانوں میں متن کی مختلف لمبائی ہے، جس کی وجہ سے UI عناصر اوورلیپ ہوتے ہیں یا اسکرین کی حدود سے باہر چلے جاتے ہیں۔

اکثر پوچھے گئے سوالات

Snapshot کون سے iOS آلات کو سپورٹ کرتا ہے؟

Snapshot iPhone اور iPad خاندان کے تمام آلات کو سپورٹ کرتا ہے، بشمول iPhone 15 Pro Max (6.7 انچ)، iPhone 15 (6.1 انچ)، iPad Pro 12.9 انچ اور iPad mini۔ ہر ڈیوائس کے لیے، Snapshot Xcode سے متعلقہ سمیلیٹر سکنز لوڈ کرتا ہے، جو درست اسکرین ریزولوشن کو یقینی بناتا ہے۔

کیا Snapshot کے کام کرنے کے لیے حقیقی آلات ضروری ہیں؟

نہیں، Snapshot خصوصی طور پر Xcode کے iOS سمیلیٹروں کے ساتھ کام کرتا ہے۔ حقیقی آلات ضروری نہیں ہیں اور سپورٹ نہیں کیے جاتے — تمام اسکرین شاٹس سمیلیٹر ماحول میں بنائے جاتے ہیں، جو App Store کی ضروریات کے لیے یکساں ریزولوشن اور رنگ تولید فراہم کرتا ہے۔

Snapshot اسکرین شاٹس میں متن کی لوکلائزیشن کو کیسے ہینڈل کرتا ہے؟

Snapshot Snapfile کی ہر زبان کے لیے UI ٹیسٹ چلانے سے پہلے سمیلیٹر کی زبان تبدیل کرتا ہے۔ ایپ سسٹم لوکلائزیشن سیٹنگز کے ذریعے متعلقہ زبان میں ظاہر ہوتی ہے۔ UI ٹیسٹ NSLocalizedString کے ذریعے لوکلائزڈ سٹرنگز استعمال کرتے ہیں، جو تمام اسکرین شاٹس پر درست متن کو یقینی بناتے ہیں۔

کیا macOS ایپس کے لیے اسکرین شاٹس بنائے جا سکتے ہیں؟

ہاں، Snapshot Fastlane ورژن 2.200 سے macOS ایپس کو سپورٹ کرتا ہے۔ macOS کے لیے، app_platform("macOS") پیرامیٹر کے ذریعے Snapfile میں پلیٹ فارم بتائیں۔ Snapshot macOS پر UI ٹیسٹ چلاتا ہے اور Mac App Store کی ضروریات کے مطابق اسکرین شاٹس بناتا ہے۔

Snapshot Cmd+S کے ذریعے عام اسکرین شاٹ سے کیسے مختلف ہے؟

دستی اسکرین شاٹ کے لیے ہر اسکرین کو دستی طور پر کھولنا، زبانیں تبدیل کرنا، آلات تبدیل کرنا — مکمل سیٹ کے لیے تقریباً 60 اعمال درکار ہیں۔ Snapshot پورے عمل کو خودکار بناتا ہے: زبانیں اور آلات تبدیل کرتا ہے، UI ٹیسٹ چلاتا ہے اور App Store کے لیے درست ناموں کے ساتھ اسکرین شاٹس 15 منٹ میں محفوظ کرتا ہے۔

خلاصہ

  • Snapshot تمام آلات اور زبانوں پر XCTest UI ٹیسٹ کے ذریعے iOS ایپس کے خودکار اسکرین شاٹ جنریشن کے لیے Fastlane افادیت ہے۔
  • ڈویلپر ایپ کے اہم مقامات پر UI ٹیسٹ کوڈ میں snapshot() کالز شامل کرتا ہے — Snapshot ان مقامات پر اسکرین شاٹس لیتا ہے۔
  • Snapfile کے ذریعے کنفیگریشن آلات، زبانوں اور سمیلیٹر پیرامیٹرز کی فہرست طے کرتی ہے: devices، languages، reinstall_app اور erase_simulator۔
  • نتائج App Store پر براہ راست اپ لوڈ کے لیے Deliver کے ساتھ مطابقت پذیر فارمیٹ میں screenshots/[Language]/ ڈائریکٹری میں محفوظ ہوتے ہیں۔
  • CI/CD انضمام عمل کو تیز کرنے کے لیے متوازی سمیلیٹروں کے ساتھ ہر ریلیز سے پہلے خود بخود تازہ اسکرین شاٹس بنانے کی اجازت دیتا ہے۔
  • عام Snapshot غلطیاں مختلف زبانوں میں غیر مستحکم UI ٹیسٹ، Xcode میں سمیلیٹر کی کمی یا غلط Scheme ترتیب سے متعلق ہیں۔

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

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

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

مزید پڑھیں