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 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.
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.
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.
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 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.
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.
let manager = NSFileProviderManager.default()
manager.signalEnumerator(for: workingSet) { error in
if let error = error {
print("Signal failed: \(error)")
}
}
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.
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.
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.
struct CloudItem: NSFileProviderItem {
let itemIdentifier: NSFileProviderItemIdentifier
let parentItemIdentifier: NSFileProviderItemIdentifier
let filename: String
let typeIdentifier: String
let capabilities: NSFileProviderItemCapabilities
let documentSize: NSNumber?
}
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.
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.
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
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.
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.
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.
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.
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
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.
Lesen Sie auch