Application Support: apa itu, penyimpanan konfigurasi dan Core Data

Penulis: IT Sectr Diterbitkan: 2026-07-10 Waktu membaca: 10 mnt

Application Support — adalah direktori dalam sandbox aplikasi iOS yang dirancang untuk menyimpan data pendukung yang diperlukan untuk pengoperasian aplikasi, tetapi tidak dibuat langsung oleh pengguna. Menurut Apple File System Basics (2024), direktori ini optimal untuk file konfigurasi, database SQLite Core Data, dokumen yang di-cache, dan data lain yang dihasilkan aplikasi secara mandiri. Berbeda dengan Documents Directory, Application Support tidak ditampilkan di iTunes File Sharing dan pengguna tidak memiliki akses langsung ke sana, yang melindungi data layanan dari penghapusan tidak sengaja.

Poin utama

  • Application Support — direktori untuk data yang dibuat aplikasi untuk kebutuhan sendiri, tidak ditujukan untuk pengguna.
  • File dari Application Support secara otomatis dicadangkan ke iCloud dan iTunes, jika tidak ada flag pengecualian yang diatur.
  • Jalur ke direktori — NSApplicationSupportDirectory atau FileManager.urls(for: .applicationSupportDirectory).
  • Core Data secara default menempatkan database SQLite di Application Support.
  • Pengguna tidak memiliki akses langsung ke Application Support melalui Files atau iTunes.

Apa itu Application Support di iOS?

Application Support — adalah direktori dalam sandbox aplikasi iOS yang dirancang untuk menyimpan data yang dibuat dan digunakan aplikasi untuk pengoperasiannya, tetapi bukan dokumen pengguna. Ini adalah tempat utama untuk konfigurasi, database, metadata yang di-cache, dan file pendukung lainnya.

iOS membedakan Application Support sebagai tingkat menengah antara Documents (data pengguna) dan Caches (data sementara). File di Application Support bisa relatif permanen, tetapi pengguna tidak boleh memiliki akses langsung ke sana — ini yang membedakannya dari Documents Directory.

Menurut Apple Developer Documentation (2024), Application Support adalah lokasi yang direkomendasikan untuk menyimpan database SQLite Core Data, file Realm, konfigurasi dalam format JSON/plist, materi referensi yang diunduh, dan data lain yang digunakan aplikasi tetapi tidak dibuat secara eksplisit oleh pengguna.

Penting: secara default, Application Support termasuk dalam cadangan iCloud dan iTunes. Jika aplikasi menyimpan volume data besar yang dapat dipulihkan di direktori ini (misalnya, panduan yang diunduh), perlu mengatur flag isExcludedFromBackup untuk file yang bersangkutan.

Cara mendapatkan jalur ke Application Support

Di Swift, jalur ke Application Support Directory diperoleh melalui FileManager.urls(for: .applicationSupportDirectory). Apple merekomendasikan membuat subdirektori dengan nama aplikasi di dalam Application Support untuk isolasi data.

swift
import Foundation

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

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

Objective-C menggunakan NSSearchPathForDirectoriesInDomains dengan NSApplicationSupportDirectory. Sama seperti di Swift, disarankan membuat subdirektori dengan nama aplikasi.

objective-c
@import Foundation;

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

Pada peluncuran pertama, direktori Application Support mungkin belum ada — harus dibuat menggunakan createDirectory(at:withIntermediateDirectories:). Ini membedakannya dari Documents Directory yang dibuat secara otomatis oleh sistem.

Data apa yang disimpan di Application Support

Application Support cocok untuk berbagai data yang digunakan aplikasi untuk pengoperasiannya. Pemilihan data yang tepat untuk direktori ini meningkatkan organisasi sistem file dan menyederhanakan pencadangan.

Database Core Data dan Realm

File SQLite Core Data secara default dibuat di Application Support. Realm juga merekomendasikan menempatkan database di direktori ini. Ini mengisolasi dokumen pengguna dari database internal aplikasi.

File konfigurasi

JSON, plist, file XML dengan pengaturan aplikasi, Feature Flags, metadata yang di-cache tentang pengguna (tetapi bukan token autentikasi — untuk itu ada Keychain).

Tipe dataApplication SupportAlternatif
SQLite Core DataYa (default)
Konfigurasi .plist / .jsonYaUserDefaults (untuk sederhana)
Materi referensi yang diunduhYaDocuments (jika untuk pengguna)
Log aplikasiBersyaratCaches (untuk log)
Token autentikasiTidakKeychain

Kriteria pemilihan: jika data dibuat dan digunakan oleh aplikasi, bukan oleh pengguna, dan harus dipertahankan antar peluncuran — tempatnya di Application Support.

Core Data dan Application Support

Core Data — salah satu konsumen utama Application Support. Saat membuat NSPersistentContainer, Core Data secara otomatis menempatkan file SQLite di Library/Application Support dengan nama unik berdasarkan nama model.

Memahami di mana Core Data menyimpan file sangat penting untuk migrasi, pencadangan, dan debugging. File utama: .sqlite (data), .sqlite-wal (Write-Ahead Log), .sqlite-shm (Shared Memory).

swift
import CoreData

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

// Direktori URL toko kustom
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]

Saat menggunakan sinkronisasi CloudKit untuk Core Data, file SQLite tetap di Application Support, dan CloudKit digunakan sebagai lapisan transport. Dalam hal ini, penting untuk tidak mengecualikan file dari cadangan — jika tidak, sinkronisasi antar perangkat dapat terganggu.

Application Support vs Documents Directory

Perbedaan antara Application Support dan Documents — salah satu yang paling penting untuk organisasi struktur file aplikasi iOS yang benar. Pilihan yang salah dapat menyebabkan pengguna secara tidak sengaja menghapus data penting aplikasi atau, sebaliknya, tidak dapat menemukan file mereka sendiri.

ParameterApplication SupportDocuments Directory
Akses penggunaTidak (tersembunyi)Melalui iTunes File Sharing
Tipe dataData layanan aplikasiDokumen pengguna
Cadangan iCloudYa (default)Ya (default)
Risiko penghapusanRendah (tanpa akses)Sedang (dapat diakses pengguna)
ContohSQLite Core DataPDF yang diekspor

Aturan sederhana: jika pengguna harus melihat file dan dapat menghapusnya — gunakan Documents. Jika file diperlukan aplikasi untuk beroperasi, tetapi pengguna tidak perlu tahu tentangnya — gunakan Application Support. Jika data dapat dipulihkan — gunakan Caches.

Praktik terbaik bekerja dengan Application Support

Bekerja dengan Application Support memerlukan pertimbangan beberapa fitur yang membedakannya dari direktori lain di sandbox. Mengikuti praktik ini membantu menghindari kehilangan data, masalah migrasi, dan perilaku aplikasi yang tidak terduga.

Selalu buat direktori pada peluncuran pertama

Tidak seperti Documents, Application Support mungkin tidak ada pada peluncuran pertama. Gunakan createDirectory(at:withIntermediateDirectories:) dengan parameter withIntermediateDirectories: true untuk menjamin pembuatan seluruh rantai subdirektori.

Gunakan subdirektori dengan Bundle Identifier

Buat subdirektori dengan Bundle Identifier di dalam Application Support. Ini mengisolasi data aplikasi Anda dari data aplikasi lain (meskipun sandbox sudah menyediakan isolasi) dan menyederhanakan migrasi saat berganti penyedia.

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

Mengikuti praktik ini menjamin bahwa data layanan aplikasi terorganisir dengan benar, terlindung dari penghapusan tidak sengaja oleh pengguna, dan dipulihkan dengan benar dari cadangan.

Pertanyaan yang sering diajukan

Apakah perlu membuat Application Support Directory secara manual?

Ya, Application Support tidak dibuat secara otomatis saat instalasi aplikasi. Tidak seperti Documents dan Caches yang dibuat sistem pada peluncuran pertama, Application Support harus dibuat oleh pengembang menggunakan FileManager.createDirectory(at:withIntermediateDirectories:). Ini biasanya dilakukan dalam metode application(_:didFinishLaunchingWithOptions:).

Bisakah pengguna secara tidak sengaja menghapus data dari Application Support?

Tidak, melalui antarmuka standar iOS (Files, iTunes) pengguna tidak memiliki akses ke Application Support. Namun, saat menghapus aplikasi itu sendiri, seluruh sandbox, termasuk Application Support, dihapus sepenuhnya. Cadangan di iCloud disimpan hingga pemulihan atau penghapusan manual.

Apakah Application Support cocok untuk menyimpan video yang diunduh?

Untuk video yang diunduh yang ditujukan untuk pengguna, lebih baik menggunakan Documents Directory — agar pengguna dapat mengelola file tersebut melalui Files. Jika video adalah bagian dari cache internal aplikasi (misalnya, konten pembelajaran offline), Application Support dapat digunakan dengan flag isExcludedFromBackup untuk file besar.

Bagaimana cara memigrasi data dari Application Support saat pembaruan aplikasi?

Tambahkan versi subdirektori di dalam Application Support. Saat pembaruan, periksa versi data saat ini dan jika perlu buat subdirektori baru, simpan yang lama untuk rollback. Hapus direktori lama hanya setelah konfirmasi bahwa semua pengguna telah berhasil migrasi ke versi data baru.

Apakah ukuran Application Support memengaruhi kecepatan peluncuran aplikasi?

Secara tidak langsung — ya. Jika Application Support berisi puluhan ribu file kecil, FileManager.enumerator dapat memperlambat inisialisasi. Disarankan membatasi jumlah file di Application Support (tidak lebih dari 1000) dan menggunakan database (Core Data, Realm) daripada banyak file terpisah untuk data terstruktur.

Kesimpulan

  • Application Support — direktori untuk data layanan aplikasi yang tidak ditujukan untuk akses langsung pengguna.
  • Jalur ke direktori — FileManager.urls(for: .applicationSupportDirectory) atau NSSearchPathForDirectoriesInDomains dengan NSApplicationSupportDirectory.
  • Direktori harus dibuat secara manual pada peluncuran pertama aplikasi.
  • Core Data secara default menempatkan database SQLite di Application Support.
  • Pengguna tidak memiliki akses ke Application Support melalui Files atau iTunes.
  • File dari Application Support dicadangkan ke iCloud, jika isExcludedFromBackup tidak diatur.
  • Buat subdirektori dengan Bundle Identifier untuk isolasi data dan penyederhanaan migrasi.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga