Application Support: Konfigurationsspeicher und Core Data

Autor: IT Sectr Veröffentlicht: 2026-07-10 Lesezeit: 10 Min.

Application Support ist ein Verzeichnis in der iOS-App-Sandbox, das für die Speicherung von Hilfsdaten konzipiert ist, die für den Betrieb der App erforderlich sind, aber nicht direkt vom Benutzer erstellt werden. Laut Apple File System Basics (2024) ist dieses Verzeichnis optimal für Konfigurationsdateien, Core Data SQLite-Datenbanken, zwischengespeicherte Dokumente und andere Daten, die die App selbst generiert. Anders als das Documents Directory wird Application Support nicht in iTunes File Sharing angezeigt und der Benutzer hat keinen direkten Zugriff darauf, was Servicedaten vor versehentlichem Löschen schützt.

Das Wichtigste

  • Application Support — ein Verzeichnis für Daten, die die App für ihre eigene Arbeit erstellt, nicht für den Benutzer bestimmt.
  • Dateien aus Application Support werden automatisch in iCloud und iTunes gesichert, sofern keine Ausschlussflag gesetzt ist.
  • Der Pfad zum Verzeichnis ist NSApplicationSupportDirectory oder FileManager.urls(for: .applicationSupportDirectory).
  • Core Data platziert standardmäßig SQLite-Datenbanken in Application Support.
  • Der Benutzer hat keinen direkten Zugriff auf Application Support über Files oder iTunes.

Was ist Application Support in iOS?

Application Support ist ein Verzeichnis in der iOS-App-Sandbox, das zum Speichern von Daten konzipiert ist, die die App für ihre Arbeit erstellt und verwendet, die aber keine Benutzerdokumente sind. Dies ist der primäre Ort für Konfigurationen, Datenbanken, zwischengespeicherte Metadaten und andere Hilfsdateien.

iOS weist Application Support als Zwischenschicht zwischen Documents (Benutzerdaten) und Caches (temporäre Daten) aus. Dateien in Application Support können relativ dauerhaft sein, aber der Benutzer sollte keinen direkten Zugriff darauf haben — dies unterscheidet es vom Documents Directory.

Laut Apple Developer Documentation (2024) ist Application Support der empfohlene Ort zum Speichern von Core Data SQLite-Datenbanken, Realm-Dateien, Konfigurationen im JSON/plist-Format, heruntergeladenen Referenzmaterialien und anderen Daten, die die App verwendet, die der Benutzer jedoch nicht explizit erstellt hat.

Wichtig: Standardmäßig ist Application Support in das iCloud- und iTunes-Backup eingeschlossen. Wenn die App große Datenmengen in diesem Verzeichnis speichert, die neu erstellt werden können (z. B. heruntergeladene Anleitungen), muss die isExcludedFromBackup-Flag für die entsprechenden Dateien gesetzt werden.

So erhalten Sie den Pfad zu Application Support

In Swift wird der Pfad zum Application Support Directory über FileManager.urls(for: .applicationSupportDirectory) abgerufen. Apple empfiehlt, ein Unterverzeichnis mit dem App-Namen innerhalb von Application Support zur Datenisolierung zu erstellen.

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 verwendet NSSearchPathForDirectoriesInDomains mit NSApplicationSupportDirectory. Wie bei Swift wird empfohlen, ein Unterverzeichnis mit dem App-Namen zu erstellen.

objective-c
@import Foundation;

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

Beim ersten Start ist das Application Support-Verzeichnis möglicherweise nicht vorhanden — es muss mit createDirectory(at:withIntermediateDirectories:) erstellt werden. Dies unterscheidet es vom Documents Directory, das automatisch vom System erstellt wird.

Welche Daten in Application Support gespeichert werden

Application Support eignet sich für eine Vielzahl von Daten, die die App für ihre Arbeit verwendet. Die richtige Auswahl der Daten für dieses Verzeichnis verbessert die Organisation des Dateisystems und vereinfacht die Sicherung.

Core Data- und Realm-Datenbanken

Die SQLite-Dateien von Core Data werden standardmäßig in Application Support erstellt. Realm empfiehlt ebenfalls, Datenbanken in diesem Verzeichnis zu platzieren. Dies isoliert Benutzerdokumente von den internen Datenbanken der App.

Konfigurationsdateien

JSON-, plist-, XML-Dateien mit App-Einstellungen, Feature Flags, zwischengespeicherte Benutzermetadaten (aber keine Authentifizierungstoken — dafür Keychain verwenden).

DatentypApplication SupportAlternative
SQLite Core DataJa (Standard)
Konfigurationen .plist / .jsonJaUserDefaults (für einfache)
Heruntergeladene ReferenzmaterialienJaDocuments (falls für Benutzer)
App-ProtokolleBedingtCaches (für Protokolle)
AuthentifizierungstokenNeinKeychain

Auswahlkriterium: Wenn die Daten von der App erstellt und verwendet werden, nicht vom Benutzer, und zwischen den Starts erhalten bleiben sollen — gehört ihr Platz in Application Support.

Core Data und Application Support

Core Data ist einer der Hauptnutzer von Application Support. Beim Erstellen eines NSPersistentContainer platziert Core Data automatisch SQLite-Dateien in Library/Application Support mit einem eindeutigen Namen basierend auf dem Modellnamen.

Zu verstehen, wo Core Data Dateien speichert, ist entscheidend für Migrationen, Sicherung und Fehlerbehebung. Hauptdateien: .sqlite (Daten), .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]

Bei Verwendung der CloudKit Core Data-Synchronisation bleibt die SQLite-Datei in Application Support und CloudKit fungiert als Transportschicht. In diesem Fall ist es wichtig, Dateien nicht vom Backup auszuschließen — andernfalls kann die Synchronisation zwischen Geräten gestört werden.

Application Support vs Documents Directory

Der Unterschied zwischen Application Support und Documents ist einer der wichtigsten für die richtige Organisation der iOS-App-Dateistruktur. Eine falsche Wahl kann dazu führen, dass der Benutzer versehentlich wichtige App-Daten löscht oder umgekehrt seine Dateien nicht finden kann.

ParameterApplication SupportDocuments Directory
BenutzerzugriffNein (versteckt)Über iTunes File Sharing
DatentypApp-ServicedatenBenutzerdokumente
iCloud-BackupJa (Standard)Ja (Standard)
LöschrisikoNiedrig (kein Zugriff)Mittel (zugänglich für Benutzer)
BeispielSQLite Core DataExportiertes PDF

Einfache Regel: Wenn der Benutzer die Datei sehen und löschen können soll — verwenden Sie Documents. Wenn die Datei für die App zum Funktionieren benötigt wird, der Benutzer aber nichts davon wissen muss — verwenden Sie Application Support. Wenn die Daten neu erstellt werden können — verwenden Sie Caches.

Bewährte Verfahren für die Arbeit mit Application Support

Die Arbeit mit Application Support erfordert die Berücksichtigung mehrerer Merkmale, die es von anderen Sandbox-Verzeichnissen unterscheiden. Die Befolgung dieser Verfahren hilft, Datenverlust, Migrationsprobleme und unerwartetes App-Verhalten zu vermeiden.

Erstellen Sie das Verzeichnis immer beim ersten Start

Anders als Documents ist Application Support möglicherweise beim ersten Start nicht vorhanden. Verwenden Sie createDirectory(at:withIntermediateDirectories:) mit dem Parameter withIntermediateDirectories: true, um die Erstellung der gesamten Unterverzeichniskette zu gewährleisten.

Verwenden Sie ein Unterverzeichnis mit Bundle Identifier

Erstellen Sie ein Unterverzeichnis mit der Bundle-ID innerhalb von Application Support. Dies isoliert die Daten Ihrer App von anderen Apps (obwohl die Sandbox bereits Isolierung bietet) und vereinfacht die Migration bei einem Anbieterwechsel.

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

Die Befolgung dieser Verfahren stellt sicher, dass die Servicedaten der App ordnungsgemäß organisiert, vor versehentlichem Löschen durch den Benutzer geschützt und korrekt aus Backups wiederhergestellt werden.

Häufig gestellte Fragen

Muss ich das Application Support Directory manuell erstellen?

Ja, Application Support wird bei der Installation der App nicht automatisch erstellt. Anders als Documents und Caches, die das System beim ersten Start erstellt, muss Application Support vom Entwickler mit FileManager.createDirectory(at:withIntermediateDirectories:) erstellt werden. Dies geschieht normalerweise in der Methode application(_:didFinishLaunchingWithOptions:).

Kann der Benutzer versehentlich Daten aus Application Support löschen?

Nein, über die standardmäßige iOS-Oberfläche (Files, iTunes) hat der Benutzer keinen Zugriff auf Application Support. Wenn jedoch die App selbst gelöscht wird, wird die gesamte Sandbox einschließlich Application Support vollständig entfernt. Das iCloud-Backup bleibt bis zur Wiederherstellung oder manuellen Löschung erhalten.

Ist Application Support zum Speichern heruntergeladener Videos geeignet?

Für heruntergeladene Videos, die für den Benutzer bestimmt sind, ist es besser, das Documents Directory zu verwenden, damit der Benutzer diese Dateien über Files verwalten kann. Wenn das Video Teil des internen Caches der App ist (z. B. Offline-Trainingsinhalte), kann Application Support mit der isExcludedFromBackup-Flag für große Dateien verwendet werden.

Wie migriere ich Daten aus Application Support beim Aktualisieren der App?

Fügen Sie Versionierung von Unterverzeichnissen innerhalb von Application Support hinzu. Überprüfen Sie beim Update die aktuelle Datenversion und erstellen Sie bei Bedarf ein neues Unterverzeichnis, wobei Sie das alte für Rollback-Zwecke behalten. Löschen Sie das alte Verzeichnis erst, nachdem bestätigt wurde, dass alle Benutzer erfolgreich auf die neue Datenversion migriert sind.

Beeinflusst die Größe von Application Support die Startgeschwindigkeit der App?

Indirekt — ja. Wenn Application Support Zehntausende kleiner Dateien enthält, kann FileManager.enumerator die Initialisierung verlangsamen. Es wird empfohlen, die Anzahl der Dateien in Application Support zu begrenzen (nicht mehr als 1000) und Datenbanken (Core Data, Realm) anstelle vieler einzelner Dateien für strukturierte Daten zu verwenden.

Zusammenfassung

  • Application Support — ein Verzeichnis für App-Servicedaten, die nicht für den direkten Benutzerzugriff bestimmt sind.
  • Der Pfad zum Verzeichnis ist FileManager.urls(for: .applicationSupportDirectory) oder NSSearchPathForDirectoriesInDomains mit NSApplicationSupportDirectory.
  • Das Verzeichnis muss beim ersten App-Start manuell erstellt werden.
  • Core Data platziert standardmäßig SQLite-Datenbanken in Application Support.
  • Der Benutzer hat keinen Zugriff auf Application Support über Files oder iTunes.
  • Dateien aus Application Support werden in iCloud gesichert, sofern isExcludedFromBackup nicht gesetzt ist.
  • Erstellen Sie ein Unterverzeichnis mit der Bundle-ID zur Datenisolierung und einfacheren Migration.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch