Application Support: کنفیگ اسٹوریج اور Core Data

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

Application Support iOS ایپ سینڈ باکس میں ایک ڈائرکٹری ہے جو ایپ کے کام کرنے کے لیے ضروری معاون ڈیٹا کو ذخیرہ کرنے کے لیے ڈیزائن کی گئی ہے، لیکن صارف کے ذریعے براہ راست نہیں بنائی گئی۔ Apple File System Basics (2024) کے مطابق، یہ ڈائرکٹری کنفیگریشن فائلوں، Core Data SQLite ڈیٹا بیسز، کیش شدہ دستاویزات اور دیگر ڈیٹا کے لیے بہترین ہے جو ایپ خود پیدا کرتی ہے۔ Documents Directory کے برعکس، Application Support iTunes File Sharing میں ظاہر نہیں ہوتا اور صارف کی اس تک براہ راست رسائی نہیں ہے، جو سروس ڈیٹا کو حادثاتی طور پر حذف ہونے سے بچاتا ہے۔

اہم نکات

  • Application Support — ڈیٹا کے لیے ایک ڈائرکٹری جو ایپ اپنے کام کے لیے بناتی ہے، صارف کے لیے مقصود نہیں۔
  • Application Support کی فائلیں خود بخود iCloud اور iTunes میں بیک اپ ہو جاتی ہیں جب تک کہ اخراج کا فلیگ سیٹ نہ کیا گیا ہو۔
  • ڈائرکٹری کا راستہ NSApplicationSupportDirectory یا FileManager.urls(for: .applicationSupportDirectory) ہے۔
  • Core Data بطور ڈیفالٹ SQLite ڈیٹا بیسز کو Application Support میں رکھتا ہے۔
  • صارف کی Files یا iTunes کے ذریعے Application Support تک براہ راست رسائی نہیں ہے۔

iOS میں Application Support کیا ہے؟

Application Support iOS ایپ سینڈ باکس میں ایک ڈائرکٹری ہے جو ایپ کے اپنے کام کے لیے بنائے اور استعمال کرنے والے ڈیٹا کو ذخیرہ کرنے کے لیے ڈیزائن کی گئی ہے، لیکن جو صارف کی دستاویزات نہیں ہے۔ یہ کنفیگریشنز، ڈیٹا بیسز، کیش شدہ میٹا ڈیٹا اور دیگر معاون فائلوں کے لیے بنیادی مقام ہے۔

iOS، Application Support کو Documents (صارف کا ڈیٹا) اور Caches (عارضی ڈیٹا) کے درمیان ایک درمیانی پرت کے طور پر متعین کرتا ہے۔ Application Support میں فائلیں نسبتاً مستقل ہو سکتی ہیں، لیکن صارف کی ان تک براہ راست رسائی نہیں ہونی چاہیے — یہ اسے Documents Directory سے ممتاز کرتا ہے۔

Apple Developer Documentation (2024) کے مطابق، Application Support Core Data SQLite ڈیٹا بیسز، Realm فائلیں، JSON/plist فارمیٹ میں کنفیگریشنز، ڈاؤن لوڈ کردہ حوالہ جاتی مواد اور دیگر ڈیٹا کو ذخیرہ کرنے کے لیے تجویز کردہ مقام ہے جو ایپ استعمال کرتی ہے لیکن صارف نے واضح طور پر نہیں بنایا۔

اہم: بطور ڈیفالٹ، Application Support iCloud اور iTunes بیک اپ میں شامل ہے۔ اگر ایپ اس ڈائرکٹری میں ڈیٹا کی بڑی مقدار ذخیرہ کرتی ہے جسے دوبارہ بنایا جا سکتا ہے (مثلاً ڈاؤن لوڈ کردہ گائیڈز)، تو متعلقہ فائلوں کے لیے isExcludedFromBackup فلیگ سیٹ کرنا ضروری ہے۔

Application Support کا راستہ کیسے حاصل کریں

Swift میں، Application Support Directory کا راستہ FileManager.urls(for: .applicationSupportDirectory) کے ذریعے حاصل کیا جاتا ہے۔ Apple ڈیٹا کی علیحدگی کے لیے Application Support کے اندر ایپ کے نام کے ساتھ ایک ذیلی ڈائرکٹری بنانے کی سفارش کرتا ہے۔

swift
import Foundation

let fileManager = FileManager.default
guard let appSupportURL = fileManager.urls(
    for: .applicationSupportDirectory,
    in: .userDomainMask
).first else { return }

// Create app subdirectory
let bundleID = Bundle.main.bundleIdentifier ?? "com.example.app"
let appDir = appSupportURL.appendingPathComponent(bundleID)
try fileManager.createDirectory(
    at: appDir,
    withIntermediateDirectories: true
)

Objective-C، NSApplicationSupportDirectory کے ساتھ NSSearchPathForDirectoriesInDomains استعمال کرتا ہے۔ Swift کی طرح، ایپ کے نام کے ساتھ ایک ذیلی ڈائرکٹری بنانے کی سفارش کی جاتی ہے۔

objective-c
@import Foundation;

NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSApplicationSupportDirectory,
    NSUserDomainMask,
    YES
);
NSString *appSupportPath = paths.firstObject;
NSString *appDir = [appSupportPath stringByAppendingPathComponent:@"com.example.app"];

پہلی بار لانچ کرنے پر، Application Support ڈائرکٹری موجود نہیں ہو سکتی — اسے createDirectory(at:withIntermediateDirectories:) کا استعمال کرتے ہوئے بنایا جانا چاہیے۔ یہ اسے Documents Directory سے ممتاز کرتا ہے، جو سسٹم کے ذریعے خود بخود بنائی جاتی ہے۔

Application Support میں کون سا ڈیٹا ذخیرہ کریں

Application Support ڈیٹا کی ایک وسیع رینج کے لیے موزوں ہے جو ایپ اپنے کام کے لیے استعمال کرتی ہے۔ اس ڈائرکٹری کے لیے صحیح ڈیٹا کا انتخاب فائل سسٹم کی تنظیم کو بہتر بناتا ہے اور بیک اپ کو آسان بناتا ہے۔

Core Data اور Realm ڈیٹا بیسز

Core Data کی SQLite فائلیں بطور ڈیفالٹ Application Support میں بنائی جاتی ہیں۔ Realm بھی ڈیٹا بیسز کو اس ڈائرکٹری میں رکھنے کی سفارش کرتا ہے۔ یہ صارف کی دستاویزات کو ایپ کے اندرونی ڈیٹا بیسز سے الگ کرتا ہے۔

کنفیگریشن فائلیں

ایپ کی ترتیبات، Feature Flags، کیش شدہ صارف میٹا ڈیٹا (لیکن تصدیقی ٹوکن نہیں — ان کے لیے Keychain استعمال کریں) پر مشتمل JSON، plist، XML فائلیں۔

ڈیٹا کی قسمApplication Supportمتبادل
SQLite Core Dataہاں (بطور ڈیفالٹ)
کنفیگریشنز .plist / .jsonہاںUserDefaults (سادہ کے لیے)
ڈاؤن لوڈ کردہ حوالہ جاتی موادہاںDocuments (اگر صارف کے لیے)
ایپ لاگزمشروطCaches (لاگ کے لیے)
تصدیقی ٹوکننہیںKeychain

انتخاب کا معیار: اگر ڈیٹا ایپ کے ذریعے بنایا اور استعمال کیا جاتا ہے، صارف کے ذریعے نہیں، اور لانچوں کے درمیان برقرار رہنا چاہیے — اس کی جگہ Application Support میں ہے۔

Core Data اور Application Support

Core Data Application Support کے اہم صارفین میں سے ایک ہے۔ NSPersistentContainer بناتے وقت، Core Data خود بخود SQLite فائلوں کو Library/Application Support میں ماڈل کے نام کی بنیاد پر ایک منفرد نام کے ساتھ رکھتا ہے۔

یہ سمجھنا کہ Core Data فائلیں کہاں ذخیرہ کرتا ہے منتقلی (migrations)، بیک اپ اور ڈیبگنگ کے لیے بہت اہم ہے۔ اہم فائلیں: .sqlite (ڈیٹا)، .sqlite-wal (Write-Ahead Log)، .sqlite-shm (Shared Memory)۔

swift
import CoreData

// Create Core Data container
let container = NSPersistentContainer(name: "MyAppModel")

// Custom store URL directory
guard let appSupportURL = FileManager.default
    .urls(for: .applicationSupportDirectory,
        in: .userDomainMask).first else { return }

let storeURL = appSupportURL
    .appendingPathComponent("MyAppModel.sqlite")
let description = NSPersistentStoreDescription(url: storeURL)
container.persistentStoreDescriptions = [description]

CloudKit Core Data sync استعمال کرتے وقت، SQLite فائل Application Support میں رہتی ہے اور CloudKit ایک ٹرانسپورٹ پرت کے طور پر کام کرتا ہے۔ اس صورت میں، فائلوں کو بیک اپ سے خارج نہ کرنا ضروری ہے — ورنہ آلات کے درمیان مطابقت پذیری ٹوٹ سکتی ہے۔

Application Support بمقابلہ Documents Directory

Application Support اور Documents کے درمیان فرق iOS ایپ فائل ڈھانچے کو صحیح طریقے سے منظم کرنے کے لیے سب سے اہم فرقوں میں سے ایک ہے۔ غلط انتخاب صارف کے اہم ایپ ڈیٹا کو حادثاتی طور پر حذف کرنے کا باعث بن سکتا ہے یا اس کے برعکس، اپنی فائلیں تلاش کرنے سے قاصر ہو سکتا ہے۔

پیرامیٹرApplication SupportDocuments Directory
صارف کی رسائینہیں (پوشیدہ)iTunes File Sharing کے ذریعے
ڈیٹا کی قسمایپ سروس ڈیٹاصارف کی دستاویزات
iCloud بیک اپہاں (بطور ڈیفالٹ)ہاں (بطور ڈیفالٹ)
حذف ہونے کا خطرہکم (کوئی رسائی نہیں)درمیانہ (صارف قابل رسائی)
مثالSQLite Core Dataبرآمد کردہ PDF

سادہ اصول: اگر صارف کو فائل دیکھنی چاہیے اور اسے حذف کرنے کے قابل ہونا چاہیے — Documents استعمال کریں۔ اگر فائل ایپ کے کام کرنے کے لیے ضروری ہے لیکن صارف کو اس کے بارے میں جاننے کی ضرورت نہیں — Application Support استعمال کریں۔ اگر ڈیٹا دوبارہ بنایا جا سکتا ہے — Caches استعمال کریں۔

Application Support کے ساتھ کام کرنے کے بہترین طریقے

Application Support کے ساتھ کام کرنے کے لیے کئی خصوصیات پر غور کرنے کی ضرورت ہے جو اسے دیگر سینڈ باکس ڈائرکٹریز سے ممتاز کرتی ہیں۔ ان طریقوں پر عمل کرنے سے ڈیٹا کے نقصان، منتقلی کے مسائل اور غیر متوقع ایپ رویے سے بچنے میں مدد ملتی ہے۔

پہلی لانچ پر ہمیشہ ڈائرکٹری بنائیں

Documents کے برعکس، Application Support پہلی لانچ پر موجود نہیں ہو سکتی۔ withIntermediateDirectories: true پیرامیٹر کے ساتھ createDirectory(at:withIntermediateDirectories:) استعمال کریں تاکہ ذیلی ڈائرکٹریز کی پوری زنجیر کی تخلیق یقینی ہو۔

Bundle Identifier کے ساتھ ذیلی ڈائرکٹری استعمال کریں

Application Support کے اندر Bundle Identifier کے ساتھ ایک ذیلی ڈائرکٹری بنائیں۔ یہ آپ کی ایپ کے ڈیٹا کو دیگر ایپس کے ڈیٹا سے الگ کرتا ہے (اگرچہ سینڈ باکس پہلے سے علیحدگی فراہم کرتا ہے) اور فراہم کنندہ تبدیل کرنے پر منتقلی کو آسان بناتا ہے۔

swift
import Foundation

enum AppSupport {
    static func ensureDirectory() throws -> URL {
        let fm = FileManager.default
        let baseURL = try fm.url(
            for: .applicationSupportDirectory,
            in: .userDomainMask,
            appropriateFor: nil,
            create: true
        )
        let appDir = baseURL
            .appendingPathComponent(Bundle.main.bundleIdentifier ?? "default")
        try fm.createDirectory(at: appDir, withIntermediateDirectories: true)
        return appDir
    }
}

ان طریقوں پر عمل کرنے سے یہ یقینی ہوتا ہے کہ ایپ کا سروس ڈیٹا مناسب طریقے سے منظم ہے، صارف کے حادثاتی حذف کرنے سے محفوظ ہے، اور بیک اپ سے درست طریقے سے بحال ہوتا ہے۔

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

کیا مجھے Application Support Directory دستی طور پر بنانے کی ضرورت ہے؟

ہاں، Application Support ایپ انسٹال کرنے پر خود بخود نہیں بنتی۔ Documents اور Caches کے برعکس، جو سسٹم پہلی لانچ پر بناتا ہے، Application Support کو ڈیولپر کو FileManager.createDirectory(at:withIntermediateDirectories:) استعمال کرتے ہوئے بنانا چاہیے۔ یہ عام طور پر application(_:didFinishLaunchingWithOptions:) طریقہ میں کیا جاتا ہے۔

کیا صارف حادثاتی طور پر Application Support سے ڈیٹا حذف کر سکتا ہے؟

نہیں، معیاری iOS انٹرفیس (Files, iTunes) کے ذریعے صارف کی Application Support تک رسائی نہیں ہے۔ تاہم، جب ایپ خود حذف ہو جاتی ہے، تو پورا سینڈ باکس، بشمول Application Support، مکمل طور پر ہٹا دیا جاتا ہے۔ iCloud بیک اپ بحالی یا دستی حذف کرنے تک باقی رہتا ہے۔

کیا Application Support ڈاؤن لوڈ کردہ ویڈیوز کو ذخیرہ کرنے کے لیے موزوں ہے؟

صارف کے لیے ڈاؤن لوڈ کردہ ویڈیوز کے لیے، Documents Directory استعمال کرنا بہتر ہے تاکہ صارف Files کے ذریعے ان فائلوں کا انتظام کر سکے۔ اگر ویڈیو ایپ کے اندرونی کیش کا حصہ ہے (مثلاً آف لائن تربیتی مواد)، تو بڑی فائلوں کے لیے isExcludedFromBackup فلیگ کے ساتھ Application Support استعمال کیا جا سکتا ہے۔

ایپ اپ ڈیٹ کرتے وقت Application Support سے ڈیٹا کیسے منتقل کریں؟

Application Support کے اندر ذیلی ڈائرکٹریز کا ورژننگ شامل کریں۔ اپ ڈیٹ کرتے وقت، موجودہ ڈیٹا ورژن چیک کریں اور اگر ضروری ہو تو ایک نئی ذیلی ڈائرکٹری بنائیں، پرانی کو رول بیک کے لیے رکھیں۔ پرانی ڈائرکٹری کو صرف اس وقت حذف کریں جب تصدیق ہو جائے کہ تمام صارفین کامیابی سے ڈیٹا کے نئے ورژن میں منتقل ہو گئے ہیں۔

کیا Application Support کا سائز ایپ لانچ کی رفتار کو متاثر کرتا ہے؟

بالواسطہ — ہاں۔ اگر Application Support میں دسیوں ہزار چھوٹی فائلیں ہیں، تو FileManager.enumerator ابتدائیہ کو سست کر سکتا ہے۔ Application Support میں فائلوں کی تعداد کو محدود (1000 سے زیادہ نہیں) رکھنے اور ساختہ ڈیٹا کے لیے بہت سی انفرادی فائلوں کے بجائے ڈیٹا بیس (Core Data, Realm) استعمال کرنے کی سفارش کی جاتی ہے۔

خلاصہ

  • Application Support — ایپ سروس ڈیٹا کے لیے ایک ڈائرکٹری جو صارف کی براہ راست رسائی کے لیے نہیں ہے۔
  • ڈائرکٹری کا راستہ FileManager.urls(for: .applicationSupportDirectory) یا NSApplicationSupportDirectory کے ساتھ NSSearchPathForDirectoriesInDomains ہے۔
  • پہلی ایپ لانچ پر ڈائرکٹری کو دستی طور پر بنانا ضروری ہے۔
  • Core Data بطور ڈیفالٹ SQLite ڈیٹا بیسز کو Application Support میں رکھتا ہے۔
  • صارف کی Files یا iTunes کے ذریعے Application Support تک رسائی نہیں ہے۔
  • Application Support کی فائلیں isExcludedFromBackup سیٹ نہ ہونے پر iCloud میں بیک اپ ہوتی ہیں۔
  • ڈیٹا علیحدگی اور آسان منتقلی کے لیے Bundle Identifier کے ساتھ ایک ذیلی ڈائرکٹری بنائیں۔

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

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

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

مزید پڑھیں