Temporary Directory — was es ist, temporäre Dateien und Speicherverwaltung

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

Temporary Directory (tmp) ist ein Verzeichnis in der iOS-App-Sandbox zur Speicherung extrem kurzlebiger Daten, die nur innerhalb der aktuellen App-Sitzung benötigt werden. Laut dem Apple File System Programming Guide (2024) kann das System tmp bei jeder App-Beendigung oder beim Neustart des Geräts löschen. Im Gegensatz zum Caches Directory sind temporäre Dateien in tmp nicht für die Aufbewahrung zwischen Starts vorgesehen — Entwickler müssen sie nach der Verwendung explizit löschen, um keinen Speicherplatz zu verschwenden.

Wichtige Punkte

  • Temporary Directory — Verzeichnis für Daten, die nur in der aktuellen App-Sitzung benötigt werden.
  • iOS kann tmp beim Geräteneustart oder App-Beendigung löschen.
  • Dateien in tmp werden nicht in iCloud- und iTunes-Backups einbezogen.
  • Der Pfad zu tmp wird über NSTemporaryDirectory() in Swift oder Objective-C abgerufen.
  • Entwickler müssen Dateien aus tmp nach der Verwendung manuell löschen.

Was ist Temporary Directory in iOS?

Temporary Directory (auch als tmp bekannt) ist ein Verzeichnis innerhalb der iOS-App-Sandbox, das für die Speicherung von Daten konzipiert ist, deren Lebensdauer auf die aktuelle Sitzung beschränkt ist. Es ist der kurzlebigste Speicher unter allen Sandbox-Verzeichnissen.

iOS stellt tmp für Vorgänge bereit, die Zwischenspeicherung von Dateien erfordern: Herunterladen einer Datei vor dem Verschieben nach Documents, Erstellen einer temporären Kopie vor dem Export, Puffern von Streaming-Daten. Nach Abschluss des Vorgangs müssen die temporären Dateien gelöscht werden.

Laut der Apple Developer Documentation (2024) ist das tmp-Verzeichnis einzigartig, da sich sein Pfad zwischen App-Starts ändern kann. iOS generiert bei jedem Start einen neuen tmp-Pfad — dies stellt sicher, dass Daten aus der vorherigen Sitzung nicht versehentlich gelesen werden. Entwickler sollten den tmp-Pfad niemals zwischen Starts speichern.

Wichtig: Im Gegensatz zum Caches Directory, in dem Daten mehrere Starts überdauern können, garantiert tmp nicht, dass Daten zwischen Sitzungen langfristig erhalten bleiben. Es ist der zuverlässigste Weg, wirklich temporäre Daten zu speichern.

Wie man den Pfad zum Temporary Directory erhält

In Swift wird zum Abrufen des Pfads zu tmp die globale Funktion NSTemporaryDirectory() oder FileManager.temporaryDirectory verwendet. Dies sind die einfachsten APIs unter allen Sandbox-Verzeichnissen.

swift
import Foundation

// Option 1: NSTemporaryDirectory()
let tempDir = NSTemporaryDirectory()
let tempFile = (tempDir as NSString)
    .appendingPathComponent("export_temp.pdf")

// Option 2: FileManager.temporaryDirectory (URL)
let tempURL = FileManager.default.temporaryDirectory
let exportURL = tempURL.appendingPathComponent("export_temp.pdf")

Objective-C verwendet dieselbe globale Funktion NSTemporaryDirectory(). Das Ergebnis ist eine Zeichenfolge mit dem vollständigen Pfad zum temporären Verzeichnis der App.

objective-c
@import Foundation;

NSString *tempDir = NSTemporaryDirectory();
NSString *tempFile = [tempDir stringByAppendingPathComponent:@"temp_data.bin"];

Ein wesentlicher Unterschied zu anderen Verzeichnissen: NSTemporaryDirectory() erfordert keine Angabe einer Domain oder Suchmaske — es ist eine globale Funktion. Der Pfad kann sich jedoch beim nächsten Start ändern, daher speichern Sie ihn niemals in UserDefaults oder einem anderen persistenten Speicher.

Welche Daten in tmp speichern

Temporary Directory ist für eine streng definierte Menge von Szenarien vorgesehen. Entwickler verwechseln häufig tmp mit Caches und legen in tmp Daten ab, die länger als eine Sitzung bestehen bleiben sollten. Sehen wir uns die korrekten Anwendungsfälle an.

Zwischendateien beim Export

Dateien, die während des Datenexports erstellt werden: eine temporäre Kopie eines Berichts vor dem Versenden per E-Mail, ein komprimiertes Archiv vor dem Hochladen, eine Zwischendatei zur Formatkonvertierung. Nach Abschluss des Exports muss die Datei gelöscht werden.

Puffern von Streaming-Daten

Temporäre Puffer zum Aufzeichnen von Audio, Video oder Streaming-Daten, die in Echtzeit verarbeitet werden. Zum Beispiel Sprachaufzeichnung vor dem Speichern im permanenten Speicher oder Videostream-Pufferung während des Streamings.

SzenarioVerzeichnisBegründung
Export von PDF vor dem SendentmpDatei nach dem Senden nicht mehr benötigt
Cache von BildernCachesNützlich zwischen Sitzungen
Download einer Datei vor VerschiebungtmpZwischenspeicherung
SitzungsprotokolletmpNur während der Sitzung relevant
Bearbeiten eines DokumentstmpVersion vor dem Speichern

Wenn Daten nur hier und jetzt benötigt werden — verwenden Sie tmp. Wenn sie in der nächsten Sitzung nützlich sein könnten — verwenden Sie Caches. Wenn Datenverlust inakzeptabel ist — verwenden Sie Documents.

Lebenszyklus temporärer Dateien

iOS verwaltet den Lebenszyklus von tmp anders als andere Sandbox-Verzeichnisse. Das Verständnis dieses Zyklus ist entscheidend für die richtige Gestaltung der Dateispeicherung in der App.

Bei jedem Start der App kann iOS einen neuen Pfad für tmp zuweisen. Der vorherige Pfad wird unzugänglich, obwohl die physischen Dateien bis zum Neustart des Geräts auf der Festplatte verbleiben können. Aus diesem Grund empfiehlt Apple dringend, den tmp-Pfad nicht zwischen Sitzungen zu speichern.

Laut Apple Tech Note TN2150 (2024) kann das System tmp in folgenden Fällen löschen: Geräteneustart, Erreichen der Speicherplatzgrenze, Auslagern der App (Offload). Im Gegensatz zu Caches ist tmp nicht dazu gedacht, Daten auch nur über mehrere Starts hinweg zu speichern — es ist der unzuverlässigste Speicher in der Sandbox.

Entwickler müssen temporäre Dateien nach Abschluss eines Vorgangs mit FileManager.removeItem(at:) explizit löschen. Nicht gelöschte Dateien in tmp sammeln sich an und verschwenden Speicherplatz — iOS garantiert keine automatische Bereinigung in naher Zukunft.

Temporary Directory vs Caches Directory

Der Vergleich von tmp und Caches hilft Entwicklern, die richtige Entscheidung bei der Wahl eines Verzeichnisses für die Speicherung zu treffen. Eine falsche Wahl kann entweder zu vorzeitigem Datenverlust oder unnötigem Platzverbrauch führen.

ParameterTemporary DirectoryCaches Directory
LebensdauerNur aktuelle SitzungZwischen Sitzungen (ohne Garantie)
PfadänderungKann sich bei jedem Start ändernStabiler Pfad
Automatische BereinigungBei Neustart, bei AuslagerungBei Speichermangel
Löschung durch EntwicklerErforderlich nach VorgangEmpfohlen bei Überschreitung des Limits
VerwendungZwischenvorgängePersistenter Cache

Eine praktische Regel: Wählen Sie tmp für Daten, die innerhalb von Sekunden oder Minuten nach der Erstellung gelöscht werden. Wählen Sie Caches für Daten, die über Stunden oder Tage zwischen Sitzungen hinweg nützlich sind, aber neu generiert werden können.

Bewährte Methoden für die Arbeit mit tmp

Die Arbeit mit Temporary Directory erfordert Disziplin: Da Daten in tmp kurzlebig sind und ihre Ansammlung zu Platzverschwendung führen kann, sollten Entwickler mehrere wichtige Praktiken befolgen.

Dateien nach der Verwendung immer löschen

FileManager.removeItem(at:) sollte sofort nach Abschluss eines Vorgangs mit einer temporären Datei aufgerufen werden. Verwenden Sie defer in Swift, um das Löschen auch bei Auftreten eines Fehlers zu gewährleisten.

swift
import Foundation

let tempURL = FileManager.default
    .temporaryDirectory
    .appendingPathComponent("upload_temp.dat")

defer {
    try? FileManager.default.removeItem(at: tempURL)
}

// Work with temp file
try "temporary data".write(to: tempURL, atomically: true)
// ... file operation ...
// defer executes when scope exits

tmp nicht für langlebige Daten verwenden

Wenn Daten eine Stunde nach der Erstellung noch benötigt werden könnten — speichern Sie sie in Caches oder Application Support. tmp ist für minutenlange Vorgänge konzipiert, nicht für die Speicherung.

Die Einhaltung dieser Regeln stellt sicher, dass temporäre Dateien nicht überhandnehmen, Speicherplatz effizient genutzt wird und die App alle Bereinigungsszenarien des iOS-Dateisystems korrekt behandelt.

Häufig gestellte Fragen

Kann sich der Pfad zum Temporary Directory während der Ausführung der App ändern?

Normalerweise ändert sich der Pfad innerhalb einer Sitzung nicht, aber iOS gibt keine Garantie dafür. In seltenen Fällen kann das System tmp ändern, wenn die App vom Hintergrund in den Vordergrund wechselt. Aus diesem Grund empfiehlt Apple, NSTemporaryDirectory() jedes Mal aufzurufen, wenn Sie den Pfad benötigen, anstatt ihn in einer Variable zu speichern.

Was passiert, wenn ich Dateien nicht aus tmp lösche?

Dateien sammeln sich an und belegen Speicherplatz. iOS kann tmp beim Neustart des Geräts löschen, aber bis dahin verschwendet die App Speicherplatz. Bei erheblicher Ansammlung kann der Benutzer in den Speichereinstellungen sehen, dass die App viel Platz belegt.

Eignet sich tmp zum Verschlüsseln temporärer Daten?

Ja, Sie können DataProtectionType mit NSFileProtectionComplete für temporäre Dateien mit sensiblen Daten verwenden. Beachten Sie jedoch: Wenn die Datei nur innerhalb der aktuellen Sitzung gelesen und dann gelöscht wird, kann die Verschlüsselung übertrieben sein. Bewerten Sie die Notwendigkeit einer Verschlüsselung basierend auf dem Datentyp.

Wie erstelle ich einen eindeutigen Dateinamen in tmp ohne Kollisionen?

Verwenden Sie ProcessInfo.processInfo.globallyUniqueString zur Generierung einer eindeutigen Kennung oder UUID().uuidString. FileManager bietet auch die Methode urlForCreatingTemporaryFile, die automatisch einen eindeutigen Namen in tmp generiert. Dies garantiert keine Kollisionen bei parallelen Schreibvorgängen.

Beeinflusst die Größe von tmp die App Store-Überprüfung?

Indirekt — ja. Apple achtet auf die Gesamtmenge der Daten, die die App auf der Festplatte speichert. Wenn tmp Gigabyte an nicht gelöschten Dateien enthält, kann der Prüfer die App ablehnen. Das empfohlene Limit für tmp beträgt zu keinem Zeitpunkt mehr als 100 MB. Bereinigen Sie tmp regelmäßig und überprüfen Sie seine Größe über FileManager.

Zusammenfassung

  • Temporary Directory (tmp) — Verzeichnis für Daten, deren Lebensdauer auf die aktuelle App-Sitzung beschränkt ist.
  • Der Pfad zu tmp kann sich zwischen Starts ändern — speichern Sie ihn nicht in persistentem Speicher.
  • Das System kann tmp beim Neustart des Geräts oder beim Auslagern der App löschen.
  • Dateien in tmp werden nicht in iCloud- und iTunes-Backups einbezogen.
  • Im Gegensatz zum Caches Directory ist tmp nicht für die Speicherung zwischen Sitzungen vorgesehen.
  • Entwickler müssen temporäre Dateien mit FileManager.removeItem explizit löschen.
  • Verwenden Sie defer in Swift, um das Löschen temporärer Dateien unabhängig vom Ergebnis des Vorgangs zu gewährleisten.

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