File Provider Extension: Was es ist und wie der iOS-Dateianbieter funktioniert

Autor: IT Sectr Veröffentlicht: 2026-06-15 Lesezeit: 9 Min.

File Provider Extension ist ein iOS-Mechanismus, der es Cloud-Diensten und Apps ermöglicht, ihre Dateien in der systemeigenen Files-App anzuzeigen. Der Benutzer sieht externe Dokumente in einer einheitlichen Oberfläche zusammen mit lokalen Dokumenten und kann sie öffnen, verschieben und bearbeiten, ohne zusätzliche Software installieren zu müssen. Laut Apple Developer Documentation (2025) bietet NSFileProviderManager eine inkrementelle Synchronisation und verwaltet Dateiversionen über einen eigenen Cache auf dem Gerät.

Wichtige Punkte

  • File Provider Extension integriert Cloud-Speicher und Dateidienste in die iOS-Files-App
  • Die Architektur basiert auf dem NSFileProviderExtension-Protokoll und NSFileProviderManager zur Datensynchronisation
  • Die Erweiterung unterstützt inkrementelle Synchronisation — es werden nur geänderte Blöcke übertragen, nicht ganze Dateien
  • Jede Datei wird durch ein NSFileProviderItem-Objekt mit Metadaten repräsentiert: Größe, Änderungsdatum, Inhaltstyp und Berechtigungen
  • Domänen (NSFileProviderDomain) ermöglichen die Trennung verschiedener Konten innerhalb einer Erweiterung

Was ist File Provider Extension in iOS

File Provider Extension ist eine App-Erweiterung, die der Files-App neue Dokumentenquellen hinzufügt. Ein Cloud-Dienst — Google Drive, Dropbox, OneDrive oder ein Unternehmensspeicher — kann seine Dateistruktur direkt in der Systemoberfläche anzeigen, ohne eine separate App zu öffnen.

Benutzer arbeiten mit entfernten Dateien genauso wie mit auf dem Gerät gespeicherten Dateien: Sie durchsuchen Ordnerinhalte, ziehen Dokumente per Drag & Drop, öffnen sie in beliebigen kompatiblen Apps und speichern Änderungen zurück in die Cloud. Laut WWDC 2025 unterstützt File Provider Extension bis zu 1000 gleichzeitige Synchronisationsvorgänge und passt sich durch dynamische Prioritätsverwaltung an die Netzwerkgeschwindigkeit an.

Die Erweiterung läuft im Hintergrund — iOS startet sie bei Bedarf und kann sie bei Ressourcenknappheit zwangsweise beenden. Alle Vorgänge müssen idempotent sein und die Wiederaufnahme ab einem Kontrollpunkt unterstützen.

Architektur und Dateisynchronisationsmechanismus

File Provider Extension hat eine dreistufige Architektur: den Files.app-Systemprozess, die Anbietererweiterung und den entfernten Server. Das System fordert Daten von der Erweiterung an, die Erweiterung übersetzt Anfragen in API-Aufrufe des Cloud-Dienstes und gibt Ergebnisse über NSFileProviderItem zurück.

Inkrementelle Synchronisation

Statt bei jedem Update die vollständige Dateistruktur zu laden, überträgt die Erweiterung nur geänderte Elemente. NSFileProviderManager bietet Methoden zum Senden inkrementeller Updates — „Datei A hinzugefügt“, „Datei B geändert“, „Ordner C gelöscht“. Dies reduziert den Datenverkehr drastisch und beschleunigt die Anzeige von Änderungen.

Laut Apple Engineering reduziert die inkrementelle Synchronisation das Datenübertragungsvolumen um 60–80% im Vergleich zu einem vollständigen Neuladen. Es wird empfohlen, NSFileProviderSyncAnchor zu verwenden, um den Synchronisationsstatus zu markieren und doppelte Anfragen zu minimieren.

Cache auf dem Gerät

File Provider Extension kann Dateien für den Offline-Zugriff lokal zwischenspeichern. Wenn eine Datei geöffnet wird, fordert das System die Erweiterung an, und die Erweiterung entscheidet, ob sie den Inhalt vom Server herunterlädt oder eine bereits zwischengespeicherte Version zurückgibt. NSFileProviderItem gibt die Cache-Ebene über die Felder isDownloaded und isUploaded an.

Apple empfiehlt, die Cache-Richtlinien je nach Dateigröße zu konfigurieren: für Bilder und Dokumente — vollständiges Caching, für Videos — nur Vorschauen, für Archive — auf Benutzeranfrage.

NSFileProviderManager: Verwaltung des Dateianbieters

NSFileProviderManager ist die zentrale Klasse, über die die Erweiterung mit dem System interagiert. Sie bietet Methoden zum Benachrichtigen des Systems über Änderungen, Erstellen neuer Elemente, Verwalten von Downloads und Behandeln von Fehlern. Jede NSFileProviderManager-Instanz ist an eine bestimmte Domäne gebunden.

Wichtige Methoden

signalEnumerator(for:) — benachrichtigt das System, dass sich der Ordnerinhalt geändert hat und neu gelesen werden muss. reimportItem(_:) — importiert das angegebene Element nach einer serverseitigen Änderung erneut. registerURLSessionTask:forItemWithIdentifier: — ordnet einen Hintergrunddownload einer bestimmten Datei zur Fortschrittsverfolgung zu.

Wichtige Einschränkung: NSFileProviderManager funktioniert nur innerhalb des Erweiterungsprozesses. Die Haupt-App kann seine Methoden nicht direkt zur Verwaltung der Dateistruktur aufrufen — die Synchronisation muss von der Erweiterung oder dem System initiiert werden.

swift
let manager = NSFileProviderManager.default()
manager.signalEnumerator(for: workingSet) { error in
    if let error = error {
        print("Signal failed: \(error)")
    }
}

Download-Verwaltung

Für Hintergrunddownloads von Dateien verwendet NSFileProviderManager URLSession mit einer Hintergrundkonfiguration. Die Erweiterung erstellt einen Download-Task und registriert ihn im Manager, der ihn mit dem entsprechenden Element verknüpft. Das System verfolgt automatisch den Download-Fortschritt und die Prioritäten basierend auf der Benutzeraktivität.

Implementierung von File Provider Extension

Die Erstellung einer File Provider Extension beginnt mit dem Hinzufügen eines neuen Targets in Xcode mit der File Provider Extension-Vorlage. Xcode generiert automatisch eine Klasse, die von NSFileProviderExtension erbt, sowie einen minimalen Satz von Methoden zum Arbeiten mit Elementen.

NSFileProviderItem und Metadaten

Jedes Element in der Dateistruktur — eine Datei oder ein Ordner — implementiert das NSFileProviderItem-Protokoll. Das Protokoll definiert erforderliche Felder: itemIdentifier, parentItemIdentifier, filename, typeIdentifier und capabilities. Zusätzlich können Sie Größe, Änderungsdatum und Download-Flags angeben.

swift
struct CloudItem: NSFileProviderItem {
    let itemIdentifier: NSFileProviderItemIdentifier
    let parentItemIdentifier: NSFileProviderItemIdentifier
    let filename: String
    let typeIdentifier: String
    let capabilities: NSFileProviderItemCapabilities
    let documentSize: NSNumber?
}

Behandlung von Aufzählungsanfragen

Die Methode enumerator(for:) gibt ein Objekt zurück, das NSFileProviderEnumerator implementiert und auf Systemanfrage den Ordnerinhalt bereitstellt. iOS kann eine Aufzählung für den Stammordner, Unterordner und einen Arbeitssatz anfordern — letzterer wird zur Anzeige aktueller oder bevorzugter Dateien verwendet.

Apple empfiehlt die Verwendung asynchroner Aufzählungsmethoden mit Paginierung über NSFileProviderPage, um nicht Tausende von Elementen gleichzeitig zu laden. Seiten mit 50–100 Elementen sind optimal für die Leistung.

Domänen und Multi-Konto-Architektur

NSFileProviderDomain ist der Mechanismus zur Trennung verschiedener Konten innerhalb einer Erweiterung. Wenn ein Benutzer mehrere Konten in einer App autorisiert hat — persönliches und geschäftliches Google Drive — erstellt jedes Konto eine separate Domäne, die als separate Quelle in der Files-App angezeigt wird.

Jede Domäne hat eine eindeutige Kennung, einen Anzeigenamen und einen Status. Benutzer können Domänen vorübergehend deaktivieren oder löschen, ohne andere Konten zu beeinträchtigen. Das System startet einen separaten Erweiterungsprozess für jede aktive Domäne, was die Datenisolierung zwischen Konten gewährleistet.

Laut Apple wird empfohlen, nicht mehr als 10 Domänen pro Erweiterung zu erstellen — eine übermäßige Anzahl verlangsamt den Start der Files-App und erhöht den Speicherverbrauch. Für Dienste mit einer großen Anzahl von Konten ist es sinnvoll, diese in einer einzigen Domäne mit Profilwechsel innerhalb der Erweiterung zu aggregieren.

swift
let domain = NSFileProviderDomain(
    identifier: "work",
    displayName: "Corporate Drive"
)
NSFileProviderManager.add(domain) { error in
    if let error = error {
        print("Failed to add domain: \(error)")
    }
}

Häufig gestellte Fragen

Welche Cloud-Dienste unterstützen File Provider Extension?

Jeder Dienst kann seine eigene Erweiterung implementieren. Zu den unterstützenden Diensten gehören Google Drive, Dropbox, Microsoft OneDrive, Box, iCloud Drive und Nextcloud. Die Erweiterung ist universell für jeden REST- oder WebDAV-Speicher.

Wie synchronisiert die Erweiterung Änderungen mit dem Server?

Die Erweiterung erhält Benachrichtigungen vom System über lokale Dateiänderungen und sendet sie über NSFileProviderManager an den Server. Für die umgekehrte Synchronisation vom Server wird NSFileProviderSyncAnchor verwendet — ein Marker der letzten Aktualisierung.

Kann die Erweiterung offline arbeiten?

Ja, wenn Dateien lokal zwischengespeichert sind. NSFileProviderItem markiert heruntergeladene Dateien mit dem Flag isDownloaded. Im Offline-Modus vorgenommene Änderungen werden bei Wiederherstellung der Verbindung automatisch synchronisiert.

Welche Dateigrößenbeschränkungen gibt es?

Es gibt keine direkten Beschränkungen — die Größe wird durch die Serverkapazitäten bestimmt. Apple empfiehlt, Dateien bis zu 100 MB automatisch zwischenzuspeichern und für größere Dateien Streaming-Downloads mit Fortschrittsbalken zu verwenden.

Wie unterscheidet sich NSFileProviderExtension von UIDocumentPickerViewController?

UIDocumentPickerViewController bietet eine einmalige Dateiauswahl über ein modales Fenster. File Provider Extension bettet eine permanente Dokumentenquelle in die Files-App mit Hintergrundsynchronisation und langfristigem Zugriff ein.

Zusammenfassung

  • File Provider Extension integriert externe Dateidienste in die Files-App und macht entfernte Dokumente in einer einheitlichen Oberfläche zugänglich
  • Die Architektur verwendet NSFileProviderExtension und NSFileProviderManager für die inkrementelle Datensynchronisation mit dem Server
  • NSFileProviderItem repräsentiert eine einzelne Datei oder einen Ordner mit vollständigen Metadaten und Fähigkeiten
  • Domänen (NSFileProviderDomain) bieten eine Multi-Konto-Architektur mit Datenisolierung zwischen Konten
  • Das Caching auf dem Gerät ermöglicht die Offline-Arbeit mit Dateien und automatischer Synchronisation nach Wiederherstellung der Verbindung
  • Die inkrementelle Synchronisation reduziert den Datenverkehr um 60–80% im Vergleich zum vollständigen Neuladen der Dateistruktur

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