Application Support: ano ito, pag-iimbak ng mga config at Core Data

May-akda: IT Sectr Nai-publish: 2026-07-10 Oras ng pagbabasa: 10 min

Application Support — ay isang direktoryo sa sandbox ng iOS application, na nilaan para sa pag-iimbak ng mga pantulong na data na kinakailangan para sa pagpapatakbo ng application, ngunit hindi direktang nilikha ng gumagamit. Ayon sa Apple File System Basics (2024), ang direktoryo na ito ay pinakamainam para sa mga configuration file, SQLite database ng Core Data, mga naka-cache na dokumento, at iba pang data na kusang nabubuo ng application. Hindi tulad ng Documents Directory, ang Application Support ay hindi ipinapakita sa iTunes File Sharing at ang gumagamit ay walang direktang access dito, na pinoprotektahan ang mga data ng serbisyo mula sa aksidenteng pagtanggal.

Mga pangunahing punto

  • Application Support — direktoryo para sa data na nilikha ng application para sa sarili nitong pagpapatakbo, hindi nilaan para sa gumagamit.
  • Ang mga file mula sa Application Support ay awtomatikong naba-back up sa iCloud at iTunes, kung hindi nakatakda ang flag ng pagbubukod.
  • Path sa direktoryo — NSApplicationSupportDirectory o FileManager.urls(for: .applicationSupportDirectory).
  • Core Data ay naglalagay ng mga SQLite database sa Application Support bilang default.
  • Ang gumagamit ay walang direktang access sa Application Support sa pamamagitan ng Files o iTunes.

Ano ang Application Support sa iOS?

Application Support — ay isang direktoryo sa sandbox ng iOS application, na nilaan para sa pag-iimbak ng data na nilikha at ginagamit ng application para sa pagpapatakbo nito, ngunit hindi mga dokumento ng gumagamit. Ito ang pangunahing lugar para sa mga configuration, database, naka-cache na metadata, at iba pang mga file na pantulong.

Inilalaan ng iOS ang Application Support bilang intermediate na antas sa pagitan ng Documents (data ng gumagamit) at Caches (pansamantalang data). Ang mga file sa Application Support ay maaaring medyo permanente, ngunit ang gumagamit ay hindi dapat magkaroon ng direktang access sa mga ito — ito ang nagpapaiiba nito sa Documents Directory.

Ayon sa Apple Developer Documentation (2024), ang Application Support ay ang inirerekomendang lugar para sa pag-iimbak ng mga SQLite database ng Core Data, Realm file, configuration sa JSON/plist format, mga na-download na reference material, at iba pang data na ginagamit ng application ngunit hindi tahasang nilikha ng gumagamit.

Mahalaga: bilang default, ang Application Support ay kasama sa backup ng iCloud at iTunes. Kung ang application ay nag-iimbak ng malalaking volume ng data na maaaring maibalik sa direktoryo na ito (hal., mga na-download na gabay), kailangang itakda ang flag na isExcludedFromBackup para sa mga kaukulang file.

Paano makuha ang path sa Application Support

Sa Swift, ang path sa Application Support Directory ay nakukuha sa pamamagitan ng FileManager.urls(for: .applicationSupportDirectory). Inirerekomenda ng Apple na gumawa ng subdirectory na may pangalan ng application sa loob ng Application Support para sa paghihiwalay ng data.

swift
import Foundation

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

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

Ang Objective-C ay gumagamit ng NSSearchPathForDirectoriesInDomains na may NSApplicationSupportDirectory. Katulad sa Swift, inirerekomenda na gumawa ng subdirectory na may pangalan ng application.

objective-c
@import Foundation;

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

Sa unang paglunsad, ang direktoryo ng Application Support ay maaaring wala pa — dapat itong likhain gamit ang createDirectory(at:withIntermediateDirectories:). Ito ang nagpapaiiba nito sa Documents Directory na awtomatikong nilikha ng system.

Anong data ang iimbak sa Application Support

Application Support ay angkop para sa malawak na hanay ng data na ginagamit ng application para sa pagpapatakbo nito. Ang tamang pagpili ng data para sa direktoryo na ito ay nagpapabuti sa organisasyon ng file system at nagpapasimple ng pagba-back up.

Core Data at Realm database

Ang mga SQLite file ng Core Data ay nililikha bilang default sa Application Support. Inirerekomenda rin ng Realm na ilagay ang mga database sa direktoryo na ito. Inihihiwalay nito ang mga dokumento ng gumagamit mula sa mga panloob na database ng application.

Configuration file

JSON, plist, XML file na may mga setting ng application, Feature Flags, naka-cache na metadata tungkol sa gumagamit (ngunit hindi mga authentication token — para sa mga iyon ay Keychain).

Uri ng dataApplication SupportAlternatibo
SQLite Core DataOo (default)
Configuration .plist / .jsonOoUserDefaults (para sa simple)
Na-download na reference materialOoDocuments (kung para sa gumagamit)
Log ng applicationMay kundisyonCaches (para sa log)
Token ng authenticationHindiKeychain

Pamantayan sa pagpili: kung ang data ay nilikha at ginagamit ng application, hindi ng gumagamit, at dapat panatilihin sa pagitan ng mga paglunsad — ang lugar nila ay sa Application Support.

Core Data at Application Support

Core Data — isa sa mga pangunahing konsumidor ng Application Support. Sa paggawa ng NSPersistentContainer, awtomatikong naglalagay ang Core Data ng mga SQLite file sa Library/Application Support na may kakaibang pangalan batay sa pangalan ng modelo.

Ang pag-unawa kung saan iniimbak ng Core Data ang mga file ay kritikal para sa migrasyon, pagba-back up, at pagde-debug. Mga pangunahing file: .sqlite (data), .sqlite-wal (Write-Ahead Log), .sqlite-shm (Shared Memory).

swift
import CoreData

// Gumawa ng lalagyan ng Core Data
let container = NSPersistentContainer(name: "MyAppModel")

// Custom na direktoryo ng URL ng tindahan
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]

Kapag gumagamit ng CloudKit synchronization para sa Core Data, ang SQLite file ay nananatili sa Application Support, at ang CloudKit ay ginagamit bilang transport layer. Sa kasong ito, mahalaga na huwag ibukod ang mga file mula sa backup — kung hindi, ang synchronization sa pagitan ng mga device ay maaaring maapektuhan.

Application Support vs Documents Directory

Ang pagkakaiba sa pagitan ng Application Support at Documents — isa sa pinakamahalaga para sa tamang organisasyon ng istraktura ng file ng iOS application. Ang maling pagpili ay maaaring humantong sa aksidenteng pagtanggal ng mahalagang data ng application ng gumagamit o, kabaligtaran, sa hindi paghahanap ng kanilang sariling mga file.

ParameterApplication SupportDocuments Directory
Access ng gumagamitHindi (nakatago)Sa pamamagitan ng iTunes File Sharing
Uri ng dataData ng serbisyo ng applicationMga dokumento ng gumagamit
Backup ng iCloudOo (default)Oo (default)
Panganib ng pagtanggalMababa (walang access)Katamtaman (accessible sa gumagamit)
HalimbawaSQLite Core DataIni-export na PDF

Simpleng patakaran: kung ang gumagamit ay dapat makakita ng file at matanggal ito — gamitin ang Documents. Kung ang file ay kailangan ng application para sa pagpapatakbo ngunit ang gumagamit ay hindi kailangang malaman tungkol dito — gamitin ang Application Support. Kung ang data ay maaaring maibalik — gamitin ang Caches.

Mga pinakamahusay na kasanayan sa pagtatrabaho sa Application Support

Ang pagtatrabaho sa Application Support ay nangangailangan ng pagsasaalang-alang sa ilang mga katangian na nagpapaiiba nito mula sa iba pang mga direktoryo sa sandbox. Ang pagsunod sa mga kasanayang ito ay tumutulong na maiwasan ang pagkawala ng data, mga problema sa migrasyon, at hindi inaasahang pag-uugali ng application.

Laging gumawa ng direktoryo sa unang paglunsad

Hindi tulad ng Documents, ang Application Support ay maaaring wala sa unang paglunsad. Gamitin ang createDirectory(at:withIntermediateDirectories:) na may parameter na withIntermediateDirectories: true upang garantiyahan ang paggawa ng buong chain ng mga subdirectory.

Gumamit ng subdirectory na may Bundle Identifier

Gumawa ng subdirectory na may Bundle Identifier sa loob ng Application Support. Inihihiwalay nito ang data ng iyong application mula sa data ng iba pang mga application (kahit na ang sandbox ay nagbibigay na ng paghihiwalay) at pinapasimple ang migrasyon sa pagbabago ng provider.

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
    }
}

Ang pagsunod sa mga kasanayang ito ay naggarantiyang ang data ng serbisyo ng application ay maayos na nakaorganisa, protektado mula sa aksidenteng pagtanggal ng gumagamit, at tama na naibabalik mula sa mga backup.

Mga madalas itanong

Kailangan bang manually gumawa ng Application Support Directory?

Oo, ang Application Support ay hindi awtomatikong nililikha sa pag-install ng application. Hindi tulad ng Documents at Caches na nililikha ng system sa unang paglunsad, ang Application Support ay dapat gawin ng developer gamit ang FileManager.createDirectory(at:withIntermediateDirectories:). Ito ay karaniwang ginagawa sa paraang application(_:didFinishLaunchingWithOptions:).

Maaari bang aksidenteng tanggalin ng gumagamit ang data mula sa Application Support?

Hindi, sa pamamagitan ng standard na iOS interface (Files, iTunes) ang gumagamit ay walang access sa Application Support. Gayunpaman, sa pagtanggal ng application mismo, ang buong sandbox, kasama ang Application Support, ay ganap na natatanggal. Ang backup sa iCloud ay nananatili hanggang sa pagpapanumbalik o manu-manong pagtanggal.

Angkop ba ang Application Support para sa pag-iimbak ng mga na-download na video?

Para sa mga na-download na video na nilaan para sa gumagamit, mas mainam na gamitin ang Documents Directory — upang ang gumagamit ay mamahala ng mga file na ito sa pamamagitan ng Files. Kung ang video ay bahagi ng panloob na cache ng application (hal., offline na nilalaman para sa pag-aaral), maaaring gamitin ang Application Support na may flag na isExcludedFromBackup para sa malalaking file.

Paano mag-migrate ng data mula sa Application Support sa pag-update ng application?

Magdagdag ng pag-ve-version ng mga subdirectory sa loob ng Application Support. Sa pag-update, suriin ang kasalukuyang bersyon ng data at kung kinakailangan, gumawa ng bagong subdirectory, panatilihin ang luma para sa rollback. Tanggalin ang lumang direktoryo pagkatapos lamang ng kumpirmasyon na ang lahat ng gumagamit ay matagumpay na nag-migrate sa bagong bersyon ng data.

Nakakaapekto ba ang laki ng Application Support sa bilis ng paglunsad ng application?

Hindi direkta — oo. Kung ang Application Support ay naglalaman ng sampu-sampung libong maliliit na file, ang FileManager.enumerator ay maaaring magpabagal sa pagsisimula. Inirerekomenda na limitahan ang bilang ng mga file sa Application Support (hindi hihigit sa 1000) at gumamit ng mga database (Core Data, Realm) sa halip na maraming indibidwal na file para sa structured na data.

Buod

  • Application Support — direktoryo para sa data ng serbisyo ng application na hindi nilaan para sa direktang access ng gumagamit.
  • Path sa direktoryo — FileManager.urls(for: .applicationSupportDirectory) o NSSearchPathForDirectoriesInDomains na may NSApplicationSupportDirectory.
  • Ang direktoryo ay dapat manu-manong gawin sa unang paglunsad ng application.
  • Core Data ay naglalagay ng mga SQLite database sa Application Support bilang default.
  • Ang gumagamit ay walang access sa Application Support sa pamamagitan ng Files o iTunes.
  • Ang mga file mula sa Application Support ay naba-back up sa iCloud, kung hindi nakatakda ang isExcludedFromBackup.
  • Gumawa ng subdirectory na may Bundle Identifier para sa paghihiwalay ng data at pagpapasimple ng migrasyon.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din