App Group: یہ کیا ہے، مشترکہ کنٹینر بنانا اور رسائی کی ترتیب

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

App Group ایک iOS میکانزم ہے جو ایپ اور اس کی توسیعات کے درمیان ڈیٹا کے تبادلے کے لیے مشترکہ کنٹینر بناتا ہے۔ اس کے بغیر، ہر عمل (مین ایپ، ویجٹ، شیئر ایکسٹینشن) الگ تھلگ سینڈ باکس میں چلتا ہے اور پڑوسی جزو کے ڈیٹا تک رسائی حاصل نہیں کر سکتا۔ Apple Developer Documentation, 2026 کے مطابق، App Group entitlements میں متعین ایک ہی گروپ شناخت کنندہ کے ذریعے اس مسئلے کو حل کرتا ہے۔ یہ iOS ماحولیاتی نظام میں مستقل صارف کا تجربہ بنانے کے لیے ایک بنیادی آلہ ہے۔

اہم نکات

  • App Group — iOS فائل سسٹم پر ایک مشترکہ ڈائریکٹری جو ایپ اور اس کی توسیعات کے لیے قابل رسائی ہے۔
  • شناخت کنندہ group.* کے پیٹرن پر عمل کرتا ہے اور Xcode پروجیکٹ کے Capabilities میں شامل کیا جاتا ہے۔
  • UserDefaults suite name کے ساتھ اضافی کوڈ کے بغیر عمل کے درمیان ترتیبات کو مطابقت پذیر بنانے کی اجازت دیتا ہے۔
  • Core Data App Group کے ذریعے درست Store URL ترتیب کے ساتھ توسیعات کو مشترکہ ڈیٹا بیس میں ڈیٹا پڑھنے اور لکھنے کی اجازت دیتا ہے۔
  • سیکورٹی اس بات سے یقینی بنائی جاتی ہے کہ صرف ایک ہی team ID اور entitlement والے عمل کنٹینر تک رسائی حاصل کر سکتے ہیں۔

App Group کیا ہے؟

App Group iOS آپریٹنگ سسٹم کا ایک میکانزم ہے جو ایک ہی ڈویلپر کے متعدد عملوں کے لیے مشترکہ ذخیرہ کرنے کی جگہ فراہم کرتا ہے۔ اس کے بغیر، ہر توسیع اپنے سینڈ باکس میں کام کرتی ہے اور دوسرے جزو کے لکھے ہوئے ڈیٹا کو نہیں پڑھ سکتی۔ App Group صحیح entitlements والے تمام عملوں کے لیے قابل رسائی ڈائریکٹری بنا کر اس تنہائی کو حل کرتا ہے۔

گروپ شناخت کنندہ group. کے سابقہ سے شروع ہوتا ہے اور پروجیکٹ کی entitlements فائل میں متعین کیا جاتا ہے۔ Xcode میں، یہ شناخت کنندہ Capabilities کے ذریعے شامل کیا جاتا ہے — سسٹم اسے خود بخود ایپ کے دستخط میں شامل کرتا ہے۔ ترتیب دینے کے بعد، تمام گروپ اراکین کنٹینر کے اندر Library/Application Support/ میں مشترکہ ڈائریکٹری تک رسائی حاصل کر سکتے ہیں۔

Apple WWDC 2020 Session 10026 کے مطابق، App Group تین اہم منظرناموں کا احاطہ کرتا ہے: NSUserDefaults کے ذریعے ترتیبات کی مطابقت پذیری، FileManager کے ذریعے فائل شیئرنگ، اور ایک ہی ذخیرہ کے ساتھ مشترکہ Core Data۔ ہر منظر نامے میں صرف متعلقہ API میں گروپ شناخت کنندہ متعین کرنے کی ضرورت ہوتی ہے۔

App Group کا مشترکہ کنٹینر کیسے کام کرتا ہے

iOS com.apple.security.application-groups entitlement رکھنے والے کسی بھی عمل کے پہلی بار چلنے پر مشترکہ کنٹینر بناتا ہے۔ جسمانی طور پر، کنٹینر سسٹم ڈائریکٹری میں واقع ہوتا ہے — اس کا راستہ مین ایپ اور توسیعات کے سینڈ باکس سے مختلف ہوتا ہے، لیکن تمام مجاز عملوں کے پاس پڑھنے اور لکھنے کی اجازت ہوتی ہے۔

رسائی کے حقوق اور سیکورٹی

Apple team ID اور کوڈ دستخط کے امتزاج کے ذریعے App Group کی سیکورٹی کو یقینی بناتا ہے۔ وہ عمل جو ایک ہی ڈویلپر سرٹیفکیٹ سے دستخط شدہ نہیں ہے گروپ کنٹینر تک رسائی حاصل نہیں کر سکتا۔ یہ مختلف ڈویلپرز کی ایپس کے درمیان ڈیٹا لیک ہونے سے روکتا ہے۔

گروپ شناخت کنندہ

شناخت کنندہ کا فارمیٹ: group.<team-id>.<name> ہے۔ مثال کے طور پر، group.ABC123DEFG.widget-data۔ ایک ڈیوائس پر متعدد گروپ بنائے جا سکتے ہیں، ہر ایک کے اپنے اراکین کا سیٹ ہوتا ہے۔ ایک ایپ بیک وقت متعدد App Groups سے تعلق رکھ سکتی ہے — یہ مختلف توسیعات کے ڈیٹا کو الگ کرنے کے لیے مفید ہے۔

swift
// Get the App Group container URL
guard let containerURL = FileManager.default
    .containerURL(forSecurityApplicationGroupIdentifier: "group.com.example.widget")
else { return }

// Create a file in the shared container
let fileURL = containerURL.appendingPathComponent("shared.data")
try "Hello from main app".write(to: fileURL, atomically: true, encoding: .utf8)

FileManager طریقہ containerURL(forSecurityApplicationGroupIdentifier:) فراہم کرتا ہے جو مشترکہ ڈائریکٹری کا URL لوٹاتا ہے۔ ہر عمل میں اس طریقہ کو الگ سے کال کرنا ضروری ہے — راستہ جسمانی طور پر ایک جیسا ہے، لیکن ہر عمل اسے اپنے سیکورٹی نقطہ نظر سے دیکھتا ہے۔

Xcode میں App Group کی ترتیب

Xcode میں App Group کو فعال کرنا Capabilities سے شروع ہوتا ہے — App Groups سوئچ پروجیکٹ میں entitlement شامل کرتا ہے۔ Apple Developer Portal بھی ضروری ہے کہ ایپ شناخت کنندہ میں یہ صلاحیت شامل ہو۔ اس کے بغیر، کوڈ دستخط حقیقی ڈیوائس پر کام نہیں کرے گا۔

مرحلہ وار ترتیب

Xcode میں اپنا پروجیکٹ کھولیں، ایپ کے ہدف کو منتخب کریں اور Signing & Capabilities ٹیب پر جائیں۔ + پر کلک کریں اور App Groups منتخب کریں۔ نیا گروپ بنائیں یا موجودہ گروپ منتخب کریں۔ ہر اس توسیع کے لیے ایک جیسے مراحل دہرائیں جسے مشترکہ کنٹینر تک رسائی کی ضرورت ہے۔ تمام شرکاء کو ایک ہی گروپ شناخت کنندہ استعمال کرنا چاہیے۔

entitlements کی جانچ

Capabilities کو فعال کرنے کے بعد، Xcode خود بخود com.apple.security.application-groups کلید اور شناخت کنندگان کی ایک صف کے ساتھ ایک .entitlements فائل بناتا ہے۔ یقینی بنائیں کہ تمام ضروری توسیعات کے پاس گروپ شناخت کنندہ میں درست team ID کے ساتھ یہ فائل موجود ہے۔

xml
<!-- Example entitlements file -->
<key>com.apple.security.application-groups</key>
<array>
    <string>group.com.example.shared</string>
</array>

اگر آپ کے پروجیکٹ میں متعدد توسیعات ہیں (Today Widget، Share Extension، Notification Service)، ہر ایک کے پاس ایک ہی گروپ کے ساتھ اپنی entitlements فائل ہونی چاہیے۔ کسی بھی ہدف میں entitlements کی عدم موجودگی ایک عام وجہ ہے جس کی وجہ سے توسیع مشترکہ ڈیٹا نہیں دیکھ پاتی۔

App Group کے ساتھ UserDefaults کا استعمال

ایپ اور اس کی توسیعات کے درمیان ڈیٹا کو مطابقت پذیر بنانے کا سب سے آسان طریقہ suite name کے ساتھ UserDefaults ہے۔ معیاری UserDefaults.standard کے بجائے، آپ App Group شناخت کنندہ کے ساتھ ایک مثال بناتے ہیں، اور تمام عمل ایک ہی ترتیبات پڑھتے ہیں۔

Apple Human Interface Guidelines کے مطابق، یہ میکانزم حالت کو مطابقت پذیر بنانے کے لیے موزوں ہے: منتخب تھیم، پسندیدہ، آن بورڈنگ فلیگ۔ تاہم، یہ بڑے ڈیٹا والیوم یا بیک وقت لکھنے کے عمل کے لیے ڈیزائن نہیں کیا گیا ہے — اس کے لیے فائلیں یا Core Data استعمال کریں۔

swift
// Write to UserDefaults App Group (main app)
let defaults = UserDefaults(suiteName: "group.com.example.shared")
defaults?.set(true, forKey: "isDarkMode")
defaults?.synchronize()

// Read from UserDefaults App Group (widget extension)
let sharedDefaults = UserDefaults(suiteName: "group.com.example.shared")
let isDark = sharedDefaults?.bool(forKey: "isDarkMode") ?? false

نوٹ: suiteName کے ساتھ UserDefaults مثال ہر عمل میں الگ بنائی جاتی ہے لیکن مشترکہ کنٹینر میں ایک ہی plist فائل سے پڑھتی ہے۔ synchronize() طریقہ فوری ڈسک تحریر کی ضمانت دیتا ہے — iOS 13+ میں اسے چھوڑا جا سکتا ہے کیونکہ سسٹم وقتاً فوقتاً ڈیٹا کو مطابقت پذیر بناتا ہے۔

فائلوں اور Core Data تک مشترکہ رسائی

مزید پیچیدہ منظرناموں کے لیے، App Group مشترکہ فائل سسٹم تک رسائی فراہم کرتا ہے۔ کنٹینر ڈائریکٹری میں بنائی گئی کوئی بھی فائل گروپ کے تمام عملوں کے لیے قابل رسائی ہوتی ہے۔ یہ ایک مشترکہ Core Data ڈیٹا بیس، تصویری کیش یا عارضی فائلوں کی اجازت دیتا ہے۔

App Group کے ساتھ Core Data ترتیب دینا

مشترکہ Core Data ذخیرہ استعمال کرنے کے لیے، App Group ڈائریکٹری میں واقع .sqlite فائل URL کے ساتھ ایک NSPersistentContainer بنائیں۔ یقینی بنائیں کہ ایک وقت میں صرف ایک عمل ڈیٹا بیس میں لکھتا ہے — بیک وقت لکھنا ڈیٹا کو خراب کر سکتا ہے۔ ایک عام فن تعمیر: مین ایپ لکھتی ہے، توسیعات پڑھتی ہیں۔

swift
// Setup Core Data with App Group container
lazy var persistentContainer: NSPersistentContainer = {
    let container = NSPersistentContainer(name: "SharedModel")
    guard let appGroupURL = FileManager.default
        .containerURL(forSecurityApplicationGroupIdentifier: "group.com.example.shared")
    else { return container }

    let storeURL = appGroupURL.appendingPathComponent("SharedModel.sqlite")
    container.persistentStoreDescriptions = [NSPersistentStoreDescription(url: storeURL)]
    container.loadPersistentStores { _, error in
        if let error = error { fatalError(error.localizedDescription) }
    }
    return container
}()

ایک متبادل طریقہ فائل پر مبنی تصویری کیش ہے۔ NSCache صرف میموری میں رہتا ہے، لیکن App Group کے ذریعے آپ کیش کی گئی تصاویر کو مشترکہ ڈائریکٹری میں ڈسک پر محفوظ کر سکتے ہیں۔ ویجٹ توسیع ایک ہی فائلوں تک رسائی حاصل کر سکتی ہے اور اضافی نیٹ ورک ڈاؤن لوڈ کے بغیر تازہ ترین ڈیٹا ظاہر کر سکتی ہے۔

منظر نامہتجویز کردہ APIڈیٹا کا سائز
ترتیبات اور فلیگUserDefaults suiteName1 KB تک
تصویری کیشFileManager + NSCache100 MB تک
ساختی ڈیٹاCore Data ذخیرہ500 MB تک
عارضی فائلیںFileManager عارضی50 MB تک

مشترکہ فائلوں کے ساتھ کام کرتے وقت، یاد رکھیں کہ سسٹم کسی بھی وقت توسیع کو ختم کر سکتا ہے۔ بیک وقت متعدد عملوں کے لکھنے پر ڈیٹا کی خرابی سے بچنے کے لیے رسائی کو مربوط کرنے کے لیے NSFileCoordinator استعمال کریں۔

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

iOS میں App Group کیا ہے؟

App Group ایک iOS میکانزم ہے جو ایپ اور اس کی توسیعات کے درمیان ڈیٹا ذخیرہ کرنے کے لیے مشترکہ کنٹینر بناتا ہے۔ یہ ایک ہی گروپ شناخت کنندہ والے عملوں کو فائل سسٹم پر ایک ہی ڈائریکٹری کے ذریعے فائلوں، UserDefaults ترتیبات اور Core Data ڈیٹا کا تبادلہ کرنے کی اجازت دیتا ہے۔

Xcode میں App Group کیسے بنائیں؟

Xcode میں ہدف کی Capabilities کھولیں، App Groups کو فعال کریں اور group.* فارمیٹ میں شناخت کنندہ شامل کریں۔ پھر ہر اس توسیع کے لیے ایک جیسے مراحل دہرائیں جسے مشترکہ کنٹینر تک رسائی کی ضرورت ہے۔ یقینی بنائیں کہ تمام شرکاء ایک ہی گروپ شناخت کنندہ استعمال کرتے ہیں۔

کون سی توسیعات App Group استعمال کر سکتی ہیں؟

iOS توسیعات کی تمام اقسام App Group کو سپورٹ کرتی ہیں: Today Widget (ویجٹ توسیع)، Share Extension، Notification Service Extension، Custom Keyboard اور دیگر۔ ہر توسیع کے پاس مین ایپ کی طرح ایک ہی گروپ شناخت کنندہ کے ساتھ ایک علیحدہ entitlements فائل ہونی چاہیے۔

کیا مختلف ایپس کے درمیان App Group استعمال کیا جا سکتا ہے؟

ہاں، لیکن صرف اس صورت میں جب ایپس ایک ہی ڈویلپر سرٹیفکیٹ سے دستخط شدہ ہوں اور ان کا team ID ایک جیسا ہو۔ Apple کوڈ دستخط کے ذریعے سیکورٹی کو یقینی بناتا ہے: مختلف ڈویلپرز کی دو ایپس ایک جیسے گروپ شناخت کنندہ کے باوجود ایک ہی کنٹینر تک رسائی حاصل نہیں کر سکتیں۔

ایپ اور ویجٹ کے درمیان App Group کے ذریعے ڈیٹا کیسے مطابقت پذیر بنائیں؟

چھوٹی ترتیبات کے لیے suite name کے ساتھ UserDefaults، فائلوں کے لیے FileManager اور ساختی ڈیٹا کے لیے Core Data استعمال کریں۔ یہ تمام APIs App Group ڈائریکٹری کے ساتھ کام کرتے ہیں — شروع کرتے وقت صرف گروپ شناخت کنندہ متعین کریں۔ Core Data کے لیے، یقینی بنائیں کہ ذخیرہ کا URL مشترکہ ڈائریکٹری کی طرف اشارہ کرتا ہے۔

خلاصہ

  • App Group iOS ایپ اور اس کی توسیعات کے درمیان فائل سسٹم پر مشترکہ کنٹینر کے ذریعے ڈیٹا کے تبادلے کو منظم کرنے کا واحد طریقہ ہے۔
  • گروپ شناخت کنندہ group.<team-id>.<name> فارمیٹ پر عمل کرتا ہے اور ہر ہدف کے لیے لازمی entitlements فائل کے ساتھ Xcode Capabilities کے ذریعے شامل کیا جاتا ہے۔
  • UserDefaults suite name کے ساتھ فائلوں کو منظم کیے بغیر عمل کے درمیان ترتیبات اور فلیگ کو مطابقت پذیر بنانے کا سب سے آسان طریقہ ہے۔
  • App Group کے ساتھ Core Data کے لیے کنٹینر کے اندر ذخیرہ URL متعین کرنا اور ڈیٹا بیس کی خرابی سے بچنے کے لیے عمل کے درمیان رسائی کو مربوط کرنا ضروری ہے۔
  • FileManager.containerURL مشترکہ ڈائریکٹری کا راستہ لوٹاتا ہے، جو صحیح entitlements والے تمام عملوں کے لیے یکساں ہوتا ہے۔
  • ڈیٹا کی سیکورٹی team ID اور کوڈ دستخط کی تصدیق سے یقینی بنائی جاتی ہے — صرف ایک ہی ڈویلپر کی ایپس مشترکہ کنٹینر تک رسائی حاصل کر سکتی ہیں۔
  • مشترکہ فائلوں میں بیک وقت لکھنے کے لیے NSFileCoordinator استعمال کریں اور عمل کے درمیان تبدیلیوں کو مطابقت پذیر بنانے کے لیے Darwin Notifications یا CFNotificationCenter استعمال کریں۔

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

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

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

مزید پڑھیں