Scheme: Xcode میں یہ کیا ہے، کنفیگریشن اور چلانا

مصنف: IT Sectr اشاعت: 2026-05-30 مطالعے کا وقت: 9 منٹ

Xcode میں Scheme ایک کنفیگریشن ہے جو اس بات کا تعین کرتی ہے کہ iOS، macOS، watchOS یا tvOS کے لیے ایپ کو کیسے بنانا، ٹیسٹ کرنا، پروفائل کرنا اور آرکائیو کرنا ہے۔ ہر Scheme میں ایکشنز کا ایک سیٹ (Build، Run، Test، Profile، Analyze، Archive) ہوتا ہے جس کے اپنے پیرامیٹرز، آرگیومینٹس اور ماحولیاتی متغیرات ہوتے ہیں۔ Apple Developer Documentation، 2025 کے مطابق، Scheme Xcode میں بلڈ کنفیگریشنز کے انتظام کا بنیادی ٹول ہے، جو دستی پیرامیٹر سوئچنگ کی جگہ لیتا ہے۔ Xcode پروجیکٹ پہلی بار کھولنے پر ہر ٹارگٹ کے لیے خود بخود ایک اسکیم بناتا ہے۔

اہم نکات

  • Scheme بلڈنگ، ٹیسٹنگ اور آرکائیونگ کے لیے ایکشنز کے سیٹ کے ساتھ ایک Xcode کنفیگریشن ہے۔
  • Build مخصوص کنفیگریشن (Debug یا Release) کے ساتھ ٹارگٹس کو کمپائل کرتا ہے۔
  • Run ایپ کو آرگیومینٹس، ماحولیاتی متغیرات اور انٹری پوائنٹ کے ساتھ لانچ کرتا ہے۔
  • Test منتخب ٹیسٹ سیٹ کے ساتھ unit اور UI ٹیسٹ چلاتا ہے۔
  • Archive پروڈکشن کنفیگریشن کے ساتھ App Store میں شائع کرنے کے لیے بلڈ کرتا ہے۔

Xcode میں Scheme کیا ہے؟

Xcode میں Scheme ایک XML فائل (.xcscheme ایکسٹینشن کے ساتھ) ہے جو ایپ کو بنانے اور تجزیہ کرنے کے لیے ایکشنز کی ترتیب اور ان کے پیرامیٹرز بیان کرتی ہے۔ ہر Scheme ایک یا زیادہ ٹارگٹس سے منسلک ہوتی ہے اور یہ طے کرتی ہے کہ ہر ایکشن کس کنفیگریشن (Debug، Release، AdHoc) کے ساتھ انجام دیا جائے۔ Scheme Android میں Build Variant کے برابر ہے، لیکن زیادہ لچکدار ڈھانچے کے ساتھ: ایک اسکیم میں مختلف ایکشنز کے لیے مختلف ٹارگٹس ہو سکتے ہیں۔

Xcode پروجیکٹ پہلی بار کھولنے پر ہر ٹارگٹ کے لیے خود بخود ایک اسکیم بناتا ہے۔ ڈیفالٹ طور پر اسکیم کا نام ٹارگٹ کے نام سے مماثل ہوتا ہے۔ اگر پروجیکٹ میں ٹیسٹ ٹارگٹ ہے، تو Xcode اسے خود بخود مرکزی ٹارگٹ کی اسکیم کے Test ایکشن میں شامل کر دیتا ہے۔ کئی ٹارگٹس والے پروجیکٹس (مرکزی ایپ + watchOS + ایکسٹینشن) کے لیے Xcode ہر ایک کے لیے الگ اسکیم بناتا ہے، لیکن ایک ایسی اسکیم بھی بنائی جا سکتی ہے جو تمام ٹارگٹس کو ایک ساتھ بنائے۔

اسکیمز xcshareddata/xcschemes/ ڈائریکٹری میں محفوظ ہوتی ہیں (shared کے لیے) یا xcuserdata/<user>/xcschemes/ میں (private کے لیے)۔ Shared اسکیمز Git میں جاتی ہیں اور پوری ٹیم استعمال کرتی ہے۔ Private اسکیمز مقامی طور پر محفوظ رہتی ہیں اور سنک نہیں ہوتیں۔ .xcscheme فائل XML فارمیٹ میں ہوتی ہے جس کا روٹ عنصر <Scheme> ہوتا ہے۔ اندر ہر ایکشن کے لیے بلاکس ہوتے ہیں: BuildAction، TestAction، LaunchAction، ProfileAction، AnalyzeAction، ArchiveAction۔

.xcscheme فائل کی ساخت

.xcscheme ایک XML فائل ہے جسے دستی طور پر یا Xcode کے ذریعے ایڈٹ کیا جا سکتا ہے۔ اہم عناصر: <BuildAction> (بنائے جانے والے ٹارگٹس کی فہرست)، <TestAction> (ٹیسٹ ٹارگٹس کے لنکس)، <LaunchAction> (لانچ کنفیگریشن)، <ProfileAction>، <AnalyzeAction>، <ArchiveAction>۔ ہر بلاک میں buildConfiguration خصوصیت ہوتی ہے، جو طے کرتی ہے کہ اس ایکشن کے لیے کونسی کنفیگریشن (Debug/Release) استعمال کرنی ہے۔

Scheme کے ایکشنز: Build، Run، Test، Profile، Analyze، Archive

Scheme چھ ایکشنز پر مشتمل ہوتی ہے، جن میں سے ہر ایک کو آزادانہ طور پر کنفیگر کیا جا سکتا ہے۔ Build ایکشن طے کرتا ہے کہ کون سے ٹارگٹس اور کس ترتیب میں بنائے جاتے ہیں۔ Run ایکشن طے کرتا ہے کہ ایپ کیسے لانچ ہوتی ہے: کن آرگیومینٹس، ماحولیاتی متغیرات اور کس کنفیگریشن کے ساتھ۔ Test ایکشن طے کرتا ہے کہ کون سے ٹیسٹ چلتے ہیں اور کون سے کوڈ کوریج آپشنز فعال ہوتے ہیں۔ Profile ایکشن پروفائلنگ کے لیے Instruments ٹولز کے ساتھ لانچ کرتا ہے۔ Analyze ایکشن Clang Static Analyzer کے ساتھ سٹیٹک کوڈ تجزیہ کرتا ہے۔ Archive ایکشن App Store میں شائع کرنے یا AdHoc تقسیم کے لیے بلڈ کرتا ہے۔

ہر ایکشن کے لیے الگ build configuration مقرر کی جا سکتی ہے۔ عام طور پر Run اور Test کے لیے Debug اور Archive کے لیے Release استعمال ہوتا ہے۔ build configuration کمپائلر فلیگس، آپٹیمائزیشن اور ڈیبگ معلومات کا سیٹ طے کرتی ہے۔ Xcode دو معیاری کنفیگریشن فراہم کرتا ہے: Debug (آپٹیمائزیشن کے بغیر، ڈیبگ سمبولز کے ساتھ) اور Release (آپٹیمائزیشن کے ساتھ، ڈیبگ معلومات کے بغیر)۔ ڈیولپر project.xcconfig کے ذریعے حسب ضرورت کنفیگریشنز شامل کر سکتا ہے۔

Archive ایکشن خاص طور پر اہم ہے — یہ ایک .xcarchive بناتا ہے، جسے پھر App Store یا AdHoc کے لیے .ipa میں ایکسپورٹ کیا جاتا ہے۔ Archive ایکشن ڈیفالٹ طور پر Release کنفیگریشن استعمال کرتا ہے، لیکن اسے AdHoc یا Distribution پر سوئچ کیا جا سکتا ہے۔ Archive ایکشن میں revealArchiveInOrganizer فلیگ بھی موجود ہے — آرکائیونگ مکمل ہونے کے بعد، Xcode آرکائیو کے ساتھ مزید کام کے لیے Organizer کھولتا ہے۔

xml
<!-- iOS ایپلیکیشن کے لیے .xcscheme کی مثال -->
<Scheme
  LastUpgradeVersion = "1500"
  version = "1.7">

  <BuildAction
    parallelizeBuildables = "YES"
    buildImplicitDependencies = "YES">
    <BuildActionEntries>
      <BuildActionEntry
        buildForTesting = "YES"
        buildForRunning = "YES"
        buildForProfiling = "YES"
        buildForArchiving = "YES"
        buildForAnalyzing = "YES">
        <BuildableReference
          BuildableIdentifier = "primary"
          BlueprintIdentifier = "ABCD1234"
          BuildableName = "MyApp.app"
          BlueprintName = "MyApp"
          ReferencedContainer = "container:MyApp.xcodeproj">
        </BuildableReference>
      </BuildActionEntry>
    </BuildActionEntries>
  </BuildAction>

  <LaunchAction
    buildConfiguration = "Debug"
    selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
    enableAddressSanitizer = "YES">
  </LaunchAction>
</Scheme>

Scheme بنانا اور کنفیگر کرنا

تشخیصی سنیٹائزرز

نئی اسکیم بنانا Xcode مینیو کے ذریعے ہوتا ہے: Product → Scheme → New Scheme یا Scheme پینل (Run بٹن کے ساتھ) میں "+" بٹن سے۔ بناتے وقت وہ ٹارگٹ منتخب کیا جاتا ہے جس کے لیے اسکیم بنائی جاتی ہے۔ اگر موجودہ اسکیم کو "duplicate" کے طور پر منتخب کیا جائے تو Xcode خود بخود اس کی سیٹنگز کاپی کرتا ہے۔ نئی اسکیمز ڈیفالٹ طور پر private کے طور پر محفوظ ہوتی ہیں — ٹیم کے ساتھ شیئر کرنے کے لیے Manage Schemes میں Shared کو فعال کرنا ضروری ہے۔

Edit Scheme ونڈو (Product → Scheme → Edit Scheme) میں ایکشنز کی تعداد کے مطابق چھ ٹیبز ہوتے ہیں۔ ہر ٹیب پر build configuration، لانچ آرگیومینٹس، ماحولیاتی متغیرات اور تشخیصی فلیگس تبدیل کیے جا سکتے ہیں۔ Run ٹیب میں آپشنز ہوتے ہیں: executable (کون سا بائنری لانچ کرنا ہے)، wait for executable to be launched (لانچ ہونے والے پروسیسز کی ڈیبگنگ کے لیے)، debugger (LLDB یا None)، launch arguments، environment variables اور توسیعی آپشنز (Address Sanitizer، Thread Sanitizer، Main Thread Checker، Memory Management)۔

تشخیص کے لیے Address Sanitizer (ASan) C/C++/ObjC کوڈ میں حدود سے باہر رسائی، use-after-free اور دیگر میموری غلطیاں دریافت کرتا ہے۔ Thread Sanitizer (TSan) ملٹی تھریڈ کوڈ میں ڈیٹا ریسز دریافت کرتا ہے۔ Undefined Behavior Sanitizer (UBSan) غیر متعین رویہ دریافت کرتا ہے، جیسے signed int کا اوور فلو۔ یہ آپشنز Edit Scheme → Run → Diagnostics میں دستیاب ہیں اور صرف Debug بلڈز کے لیے کام کرتے ہیں۔ تمام سنیٹائزرز کو فعال کرنے سے لانچ 2-3 گنا سست ہو سکتا ہے، اس لیے انہیں منتخب طور پر فعال کرنے کی سفارش کی جاتی ہے۔

مختلف ماحول کے لیے اسکیم کا کلون بنانا

عام عمل یہ ہے کہ ہر ماحول کے لیے الگ اسکیم بنائی جائے: Dev، Staging، Production۔ ہر اسکیم ایک ہی Build Configuration استعمال کرتی ہے (Dev کے لیے Debug، Production کے لیے Release)، لیکن مختلف لانچ آرگیومینٹس: Dev کے لیے -FIRAnalyticsDebugEnabled، -com.apple.CoreData.SQLDebug 1 اور Production کے لیے ان کی عدم موجودگی۔ لانچ آرگیومینٹس UserDefaults (ProcessInfo.processInfo.arguments) میں منتقل ہوتے ہیں اور ایپ اسٹارٹ پر پڑھنے کے لیے دستیاب ہوتے ہیں۔ یہ کوڈ تبدیل کیے بغیر سرور URL، لاگنگ لیول اور فیچرز سوئچ کرنے کی اجازت دیتا ہے۔

Shared اور Private اسکیمز: Git کے ذریعے انتظام

Shared اسکیمز <project>.xcworkspace/xcshareddata/xcschemes/ یا <project>.xcodeproj/xcshareddata/xcschemes/ میں محفوظ ہوتی ہیں اور Git ریپوزٹری میں جاتی ہیں۔ ٹیم کے تمام ڈیولپرز یہ اسکیمز Xcode میں دیکھتے ہیں۔ Shared اسکیمز ٹیم کے اندر اسکیمز تقسیم کرنے کا واحد طریقہ ہیں۔ اگر کسی ڈیولپر نے اہم اسکیم بنائی (مثلاً "Staging Archive") لیکن اسے Shared کے طور پر نشان زد نہیں کیا، تو باقی ٹیم اسے نہیں دیکھ پائے گی، جس سے الجھن پیدا ہوتی ہے: ہر کوئی اپنی سیٹنگز کے ساتھ اپنی اسکیم بنائے گا۔

Private اسکیمز xcuserdata/<user>/xcschemes/ میں محفوظ ہوتی ہیں اور Git میں نہیں جاتیں۔ وہ ذاتی کنفیگریشنز کے لیے مفید ہیں: مثلاً کسی مخصوص ڈیولپر کے لیے تمام سنیٹائزرز فعال کے ساتھ ایک اسکیم۔ Private اسکیمز میں وہ اہم سیٹنگز نہیں ہونی چاہئیں جن پر پروجیکٹ کا بلڈ منحصر ہو — اگر ڈیولپر پروجیکٹ چھوڑ دیتا ہے تو اس کی private اسکیمز غائب ہو جائیں گی۔ سفارش: CI/CD میں استعمال ہونے والی اور کم از کم دو ڈیولپرز استعمال کرنے والی تمام اسکیمز کو Shared بنائیں۔

اسکیمز کا انتظام Manage Schemes (Product → Scheme → Manage Schemes) کے ذریعے کیا جاتا ہے۔ ونڈو میں پروجیکٹ کی تمام اسکیمز، ان کی حالت (Shared/Private) اور شامل کرنے/ہٹانے کے لیے +/− بٹن دکھائی دیتے ہیں۔ Shared چیک باکس ٹیم کے لیے اسکیم کی نمائش کو سوئچ کرتا ہے۔ Git تنازع کی صورت میں (دو ڈیولپرز کی طرف سے .xcscheme میں تبدیلیاں)، مرج کو احتیاط سے حل کرنا ضروری ہے — XML فائلوں میں مختلف ٹارگٹ شناخت کار ہو سکتے ہیں۔ مرج کے دوران لاک ہونے والی فائلوں (git lfs یا .gitattributes) میں .xcscheme شامل کرنے کی سفارش کی جاتی ہے۔

لانچ آرگیومینٹس اور ماحولیاتی متغیرات

آرگیومینٹس Scheme میں وہ سٹرنگز ہیں جو لانچ کے وقت ایپ کو دی جاتی ہیں (ProcessInfo.processInfo.arguments) اور ماحولیاتی متغیرات (ProcessInfo.processInfo.environment)۔ آرگیومینٹس فلیگس کے لیے استعمال ہوتے ہیں: -AppleLanguages (ru)، -AppleLocale ru_RU روسی لوکیل سمیلیٹ کرنے کے لیے، یا -FIRDebugEnabled Firebase ڈیبگنگ فعال کرنے کے لیے۔ ماحولیاتی متغیرات کنفیگریشن کے لیے استعمال ہوتے ہیں: API_BASE_URL=http://localhost:3000، LOG_LEVEL=debug۔

مختلف ماحول میں فیچرز (feature flags) کے انتظام کے لیے Arguments + Build Configuration کا امتزاج استعمال ہوتا ہے۔ Dev اسکیم میں آرگیومینٹ -FeatureFlagNewOnboarding YES سیٹ کیا جاتا ہے، اور Production میں — -FeatureFlagNewOnboarding NO (یا آرگیومینٹ موجود نہیں ہوتا)۔ کوڈ میں چیک: UserDefaults.standard.bool(forKey: "FeatureFlagNewOnboarding")۔ یہ طریقہ کوڈ تبدیل کیے بغیر اور پروڈکشن ویلیوز کمٹ کیے بغیر staging پر فیچرز کو بتدریج فعال کرنے کی اجازت دیتا ہے۔

اہم: Scheme کے آرگیومینٹس اور ماحولیاتی متغیرات Info.plist کی ویلیوز کو اوور رائیڈ کرتے ہیں۔ اگر Info.plist میں API_URL متعین ہے، اور Scheme میں — Run ایکشن کے لیے API_URL=http://localhost، تو Xcode سے لانچ کرنے پر Scheme کی ویلیو استعمال ہوگی۔ ڈیوائس پر لانچ کرنے پر (Xcode سے نہیں) — Info.plist کی ویلیو۔ یہ لوکل ڈیولپمنٹ کے لیے آسان ہے، لیکن یاد رکھنا ضروری ہے کہ Scheme کے متغیرات بلڈ میں نہیں جاتے — وہ صرف Xcode کے ذریعے لانچ کرنے پر کام کرتے ہیں۔

swift
import Foundation

struct AppEnvironment {
    var apiBaseURL: String {
        ProcessInfo.processInfo.environment["API_BASE_URL"]
            ?? Bundle.main.object(forInfoDictionaryKey: "API_BASE_URL") as? String
            ?? "https://api.production.com"
    }

    var isDebugMode: Bool {
        ProcessInfo.processInfo.arguments.contains("-DebugModeEnabled")
    }

    var isNewOnboardingEnabled: Bool {
        UserDefaults.standard.bool(forKey: "FeatureFlagNewOnboarding")
    }
}

// اسٹارٹ اپ پر استعمال
let env = AppEnvironment()
NetworkConfig.shared.configure(baseURL: env.apiBaseURL)

CI/CD میں Scheme: xcodebuild کے ذریعے آٹومیشن

CI/CD (GitHub Actions، Jenkins، GitLab CI) میں Scheme کو xcodebuild کمانڈ کے مرکزی آرگیومینٹ کے طور پر استعمال کیا جاتا ہے۔ مثال: xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -configuration Release -sdk iphoneos archive۔ -scheme فلیگ بتاتا ہے کہ کون سی اسکیم استعمال کرنی ہے۔ xcodebuild .xcscheme فائل سے تمام سیٹنگز پڑھتا ہے، بشمول build configuration، ٹارگٹس اور بلڈ ترتیب۔ یہ یقینی بناتا ہے کہ CI/CD ایپ کو لوکل IDE جیسے ہی پیرامیٹرز کے ساتھ بناتا ہے۔

CI/CD کے لیے Shared اسکیمز اہم ہیں۔ اگر اسکیم Shared نہیں ہے، تو xcodebuild اسے ریپوزٹری میں نہیں ڈھونڈ پائے گا، اور بلڈ "Scheme not found" غلطی کے ساتھ ناکام ہو جائے گا۔ قاعدہ: CI/CD سیٹ کرنے سے پہلے یقینی بنائیں کہ تمام استعمال شدہ اسکیمز Shared کے طور پر نشان زد ہیں۔ دوسرا قاعدہ: CI/CD میں ڈیفالٹ اسکیم استعمال نہ کریں (Xcode خود بخود پہلی اسکیم منتخب کرتا ہے) — ہمیشہ اسکیم کا نام -scheme فلیگ کے ذریعے واضح طور پر پاس کریں۔

کئی اسکیمز کو متوازی بنانے کے لیے (مثلاً ایپ اور watchOS ایکسٹینشن)، xcodebuild کو ترتیب وار یا متوازی چلایا جا سکتا ہے۔ جدید CI سسٹمز میٹرکس کے ذریعے مختلف اسکیمز کے بلڈ کو متوازی کرنے کی اجازت دیتے ہیں: ایک جاب iOS ایپ بناتی ہے، دوسری watchOS ایکسٹینشن۔ یہ دو متوازی ایجنٹس کے ساتھ کل بلڈ وقت 15 سے 8 منٹ تک کم کرتا ہے۔ آخر میں آرٹیفیکٹس xcodebuild -exportArchive کے ساتھ ایک ہی .xcarchive میں مل جاتے ہیں۔

bash
#!/bin/bash — xcodebuild کے ساتھ CI/CD بلڈ
# 1. صفائی اور بلڈ
xcodebuild clean archive \
  -workspace "MyApp.xcworkspace" \
  -scheme "MyApp Production" \
  -configuration Release \
  -sdk iphoneos \
  -archivePath "build/MyApp.xcarchive" \
  CODE_SIGN_STYLE="Manual" \
  PROVISIONING_PROFILE_SPECIFIER="match AppStore"

# 2. IPA میں ایکسپورٹ
xcodebuild -exportArchive \
  -archivePath "build/MyApp.xcarchive" \
  -exportPath "build/ipa" \
  -exportOptionsPlist "ExportOptions.plist"

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

عام پروجیکٹ کے لیے کتنی اسکیمز درکار ہیں؟

عام طور پر 2-3 اسکیمز کافی ہوتی ہیں: Development (Debug)، Staging (ٹیسٹ سرور کے لیے آرگیومینٹس کے ساتھ) اور Production (Release)۔ ماڈیولر لائبریریوں کے لیے — ٹیسٹنگ سیٹنگز کے ساتھ ایک اسکیم۔ زیادہ اسکیمز نہ بنائیں — ہر نئی اسکیم کو دیکھ بھال کی ضرورت ہوتی ہے۔

Scheme، Build Configuration سے کیسے مختلف ہے؟

Build Configuration (Debug/Release) .xcconfig میں متعین کمپائلر فلیگس کا سیٹ ہے۔ Scheme ایکشنز کا سیٹ ہے، جن میں سے ہر ایک Build Configuration کا حوالہ دیتا ہے۔ اسکیم کہتی ہے "لانچ کرتے وقت Debug استعمال کرو"، کنفیگریشن طے کرتی ہے کہ "Debug کا مطلب آپٹیمائزیشن کے بغیر، سمبولز کے ساتھ" ہے۔

Scheme سے کوڈ میں آرگیومینٹس کیسے پاس کریں؟

آرگیومینٹس ProcessInfo.processInfo.arguments اور UserDefaults میں جاتے ہیں (اگر آرگیومینٹ ڈیش سے شروع ہوتا ہے)۔ ماحولیاتی متغیرات ProcessInfo.processInfo.environment میں جاتے ہیں۔ کوڈ میں: -FeatureFlag YES شکل کے آرگیومینٹس کے لیے UserDefaults.standard.bool(forKey: "FeatureFlag")۔

کیا ایک اسکیم کئی ٹارگٹس کے لیے ہو سکتی ہے؟

ہاں، Build Action میں کئی ٹارگٹس شامل کیے جا سکتے ہیں۔ مثلاً، "App + Watch + Widget" اسکیم تینوں ٹارگٹس کو ترتیب وار (اگر parallelizeBuildables=NO) یا متوازی (YES) بنائے گی۔ ایپ آرکائیو کرنے کے لیے مرکزی ٹارگٹ کافی ہے — باقی ڈیپنڈنسیز کے طور پر بنتے ہیں۔

SPM استعمال کرتے ہوئے اسکیم کی ضرورت کیوں ہے؟

Swift Package Manager اسکیمز کی جگہ نہیں لیتا — اسکیم اب بھی طے کرتی ہے کہ SPM ڈیپنڈنسیز کو کس کنفیگریشن کے ساتھ بنانا ہے، کون سے ٹیسٹ چلانا ہیں اور کیسے آرکائیو کرنا ہے۔ SPM پیکجز کی اپنی اسکیمز ہو سکتی ہیں، جو پیکج شامل کرنے پر خود بخود پروجیکٹ میں امپورٹ ہو جاتی ہیں۔

خلاصہ

  • Scheme Xcode ایکشنز کی XML کنفیگریشن ہے: Build، Run، Test، Profile، Analyze، Archive۔
  • Build Configuration (Debug/Release) اسکیم کے ہر ایکشن کے لیے الگ سے سیٹ کی جاتی ہے۔
  • Shared اسکیمز Git میں محفوظ ہوتی ہیں اور پوری ٹیم استعمال کرتی ہے، private صرف لوکل ہوتی ہیں۔
  • آرگیومینٹس اور Scheme میں ماحولیاتی متغیرات کوڈ تبدیل کیے بغیر ماحول سوئچ کرنے کی اجازت دیتے ہیں۔
  • CI/CD بلڈ کی یکسانیت کی ضمانت کے لیے xcodebuild -scheme کے ذریعے Scheme استعمال کرتا ہے۔
  • تشخیص (ASan، TSan، UBSan) ڈیولپمنٹ کے دوران بگ تلاش کرنے کے لیے اسکیم میں کنفیگر ہوتی ہے۔
  • سفارش: Dev/Staging/Production کے لیے 2-3 Shared اسکیمز رکھیں اور private اسکیمز ریپوزٹری میں محفوظ نہ کریں۔

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

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

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

مزید پڑھیں