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 फ़ाइलें कहाँ संग्रहीत करता है, माइग्रेशन, बैकअप और डीबगिंग के लिए महत्वपूर्ण है। मुख्य फ़ाइलें: .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 सिंक का उपयोग करते समय, 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 से फ़ाइलें iCloud में बैकअप होती हैं जब तक कि isExcludedFromBackup सेट न किया गया हो।
  • डेटा अलगाव और आसान माइग्रेशन के लिए Bundle Identifier के साथ एक उपनिर्देशिका बनाएँ

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें