Application Support: wat is het, configuraties opslaan en Core Data

Auteur: IT Sectr Gepubliceerd: 2026-07-10 Leestijd: 10 min

Application Support — is een directory in de sandbox van een iOS-app, bedoeld voor het opslaan van ondersteunende gegevens die nodig zijn voor de werking van de app, maar die niet direct door de gebruiker worden aangemaakt. Volgens Apple File System Basics (2024) is deze directory optimaal voor configuratiebestanden, SQLite-databases van Core Data, gecachte documenten en andere gegevens die de app zelfstandig genereert. In tegenstelling tot Documents Directory wordt Application Support niet weergegeven in iTunes File Sharing en heeft de gebruiker er geen directe toegang toe, wat servicegegevens beschermt tegen onbedoeld verwijderen.

Belangrijkste punten

  • Application Support — directory voor gegevens die de app voor eigen gebruik aanmaakt, niet bedoeld voor de gebruiker.
  • Bestanden uit Application Support worden automatisch geback-upt naar iCloud en iTunes, tenzij een uitzonderingsvlag is ingesteld.
  • Pad naar de directory — NSApplicationSupportDirectory of FileManager.urls(for: .applicationSupportDirectory).
  • Core Data plaatst standaard SQLite-databases in Application Support.
  • De gebruiker heeft geen directe toegang tot Application Support via Files of iTunes.

Wat is Application Support in iOS?

Application Support — is een directory in de sandbox van een iOS-app, bedoeld voor het opslaan van gegevens die de app aanmaakt en gebruikt voor zijn werking, maar die geen gebruikersdocumenten zijn. Dit is de primaire locatie voor configuraties, databases, gecachte metadata en andere ondersteunende bestanden.

iOS onderscheidt Application Support als tussenliggend niveau tussen Documents (gebruikersgegevens) en Caches (tijdelijke gegevens). Bestanden in Application Support kunnen relatief permanent zijn, maar de gebruiker zou er geen directe toegang toe moeten hebben — dit onderscheidt het van Documents Directory.

Volgens Apple Developer Documentation (2024) is Application Support de aanbevolen locatie voor het opslaan van Core Data SQLite-databases, Realm-bestanden, configuraties in JSON/plist-formaat, gedownloade referentiematerialen en andere gegevens die de app gebruikt, maar die de gebruiker niet expliciet heeft aangemaakt.

Belangrijk: standaard is Application Support opgenomen in de iCloud- en iTunes-back-up. Als de app grote hoeveelheden herbruikbare gegevens in deze directory opslaat (bijv. gedownloade handleidingen), moet de vlag isExcludedFromBackup worden ingesteld voor de betreffende bestanden.

Hoe krijg ik het pad naar Application Support

In Swift wordt het pad naar Application Support Directory verkregen via FileManager.urls(for: .applicationSupportDirectory). Apple raadt aan om een subdirectory met de app-naam aan te maken binnen Application Support voor gegevensisolatie.

swift
import Foundation

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

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

Objective-C gebruikt NSSearchPathForDirectoriesInDomains met NSApplicationSupportDirectory. Net als in Swift wordt aanbevolen een subdirectory met de app-naam aan te maken.

objective-c
@import Foundation;

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

Bij de eerste start bestaat de Application Support-directory mogelijk niet — deze moet worden aangemaakt met createDirectory(at:withIntermediateDirectories:). Dit onderscheidt het van Documents Directory, die automatisch door het systeem wordt aangemaakt.

Welke gegevens opslaan in Application Support

Application Support is geschikt voor een breed scala aan gegevens die de app gebruikt voor zijn werking. De juiste gegevenskeuze voor deze directory verbetert de bestandssysteemorganisatie en vereenvoudigt back-ups.

Core Data en Realm databases

SQLite-bestanden van Core Data worden standaard aangemaakt in Application Support. Realm raadt ook aan databases in deze directory te plaatsen. Dit isoleert gebruikersdocumenten van de interne databases van de app.

Configuratiebestanden

JSON, plist, XML-bestanden met app-instellingen, Feature Flags, gecachte metadata over de gebruiker (maar geen authenticatietokens — daarvoor is Keychain).

GegevenstypeApplication SupportAlternatief
SQLite Core DataJa (standaard)
Configuraties .plist / .jsonJaUserDefaults (voor eenvoudige)
Gedownloade referentiematerialenJaDocuments (indien voor gebruiker)
Logboeken van de appVoorwaardelijkCaches (voor logboeken)
Authenticatie-tokensNeeKeychain

Selectiecriterium: als gegevens worden aangemaakt en gebruikt door de app, niet door de gebruiker, en moeten worden bewaard tussen starts — dan is hun plaats in Application Support.

Core Data en Application Support

Core Data — een van de belangrijkste gebruikers van Application Support. Bij het aanmaken van NSPersistentContainer plaatst Core Data automatisch SQLite-bestanden in Library/Application Support met een unieke naam op basis van de modelnaam.

Begrijpen waar Core Data bestanden opslaat is cruciaal voor migraties, back-ups en debuggen. Belangrijkste bestanden: .sqlite (gegevens), .sqlite-wal (Write-Ahead Log), .sqlite-shm (Shared Memory).

swift
import CoreData

// Maak Core Data-container aan
let container = NSPersistentContainer(name: "MyAppModel")

// Aangepaste winkel-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]

Bij gebruik van CloudKit synchronisatie voor Core Data blijft het SQLite-bestand in Application Support en wordt CloudKit gebruikt als transportlaag. In dit geval is het belangrijk bestanden niet uit te sluiten van back-up — anders kan synchronisatie tussen apparaten worden verstoord.

Application Support vs Documents Directory

Het verschil tussen Application Support en Documents — een van de belangrijkste voor een correcte organisatie van de bestandsstructuur van een iOS-app. Een verkeerde keuze kan ertoe leiden dat de gebruiker per ongeluk belangrijke app-gegevens verwijdert of, omgekeerd, zijn eigen bestanden niet kan vinden.

ParameterApplication SupportDocuments Directory
GebruikerstoegangNee (verborgen)Via iTunes File Sharing
GegevenstypeServicegegevens van de appGebruikersdocumenten
iCloud back-upJa (standaard)Ja (standaard)
VerwijderrisicoLaag (geen toegang)Gemiddeld (toegankelijk voor gebruiker)
VoorbeeldSQLite Core DataGeëxporteerde PDF

Eenvoudige regel: als de gebruiker het bestand moet zien en moet kunnen verwijderen — gebruik Documents. Als het bestand nodig is voor de werking van de app, maar de gebruiker hoeft er niet van te weten — gebruik Application Support. Als gegevens kunnen worden hersteld — gebruik Caches.

Beste praktijken voor werken met Application Support

Werken met Application Support vereist het in acht nemen van verschillende kenmerken die het onderscheiden van andere directories in de sandbox. Het naleven van deze praktijken helpt gegevensverlies, migratieproblemen en onverwacht app-gedrag te voorkomen.

Maak altijd de directory aan bij de eerste start

In tegenstelling tot Documents kan Application Support bij de eerste start niet bestaan. Gebruik createDirectory(at:withIntermediateDirectories:) met parameter withIntermediateDirectories: true om de aanmaak van de volledige keten van subdirectories te garanderen.

Gebruik een subdirectory met Bundle Identifier

Maak een subdirectory met Bundle Identifier aan binnen Application Support. Dit isoleert de gegevens van jouw app van gegevens van andere apps (hoewel de sandbox al isolatie biedt) en vereenvoudigt migratie bij een leverancierswissel.

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

Het naleven van deze praktijken garandeert dat de servicegegevens van de app correct zijn georganiseerd, beschermd tegen onbedoeld verwijderen door de gebruiker en correct worden hersteld uit back-ups.

Veelgestelde vragen

Moet Application Support Directory handmatig worden aangemaakt?

Ja, Application Support wordt niet automatisch aangemaakt bij installatie van de app. In tegenstelling tot Documents en Caches, die door het systeem worden aangemaakt bij de eerste start, moet Application Support door de ontwikkelaar worden aangemaakt met FileManager.createDirectory(at:withIntermediateDirectories:). Dit gebeurt meestal in de methode application(_:didFinishLaunchingWithOptions:).

Kan de gebruiker per ongeluk gegevens uit Application Support verwijderen?

Nee, via de standaard iOS-interface (Files, iTunes) heeft de gebruiker geen toegang tot Application Support. Bij het verwijderen van de app zelf wordt echter de hele sandbox, inclusief Application Support, volledig verwijderd. De back-up in iCloud blijft behouden tot herstel of handmatige verwijdering.

Is Application Support geschikt voor het opslaan van gedownloade video's?

Voor gedownloade video's die voor de gebruiker zijn bestemd, is het beter Documents Directory te gebruiken — zodat de gebruiker deze bestanden via Files kan beheren. Als de video deel uitmaakt van de interne cache van de app (bijv. offline leermateriaal), kan Application Support worden gebruikt met de vlag isExcludedFromBackup voor grote bestanden.

Hoe migreer ik gegevens uit Application Support bij een app-update?

Voeg versiebeheer van subdirectories toe binnen Application Support. Controleer bij een update de huidige gegevensversie en maak indien nodig een nieuwe subdirectory aan, terwijl je de oude behoudt voor rollback. Verwijder de oude directory pas nadat is bevestigd dat alle gebruikers succesvol zijn gemigreerd naar de nieuwe gegevensversie.

Heeft de grootte van Application Support invloed op de opstartsnelheid van de app?

Indirect — ja. Als Application Support tienduizenden kleine bestanden bevat, kan FileManager.enumerator de initialisatie vertragen. Het wordt aanbevolen het aantal bestanden in Application Support te beperken (niet meer dan 1000) en databases (Core Data, Realm) te gebruiken in plaats van meerdere afzonderlijke bestanden voor gestructureerde gegevens.

Samenvatting

  • Application Support — directory voor servicegegevens van de app die niet zijn bedoeld voor directe gebruikerstoegang.
  • Pad naar de directory — FileManager.urls(for: .applicationSupportDirectory) of NSSearchPathForDirectoriesInDomains met NSApplicationSupportDirectory.
  • De directory moet handmatig worden aangemaakt bij de eerste start van de app.
  • Core Data plaatst standaard SQLite-databases in Application Support.
  • De gebruiker heeft geen toegang tot Application Support via Files of iTunes.
  • Bestanden uit Application Support worden geback-upt naar iCloud, tenzij isExcludedFromBackup is ingesteld.
  • Maak een subdirectory met Bundle Identifier voor gegevensisolatie en eenvoudigere migratie.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook