1.12.2011 / Timo Hetzel

Offline-Dateien unter iOS 5

Bits und so DateisystemMit der Bits und so App 1.2.1 ändert sich jetzt zum zweiten Mal der Speicherort für die heruntergeladenen Mediendateien:

In der Bits und so App 1.0.x und 1.1.x wurden die Mediendateien unter Documents gespeichert – damit waren sie im Backup enthalten und wurden nach einem Restore auch wieder aus dem Backup auf das Gerät übertragen.

Mit iOS 5 gibt es zwei Änderungen, die sich gegenseitig etwas behindern: Das iCloud Backup und den Drang des Systems, bei knappem Plattenplatz den Apps ihre Cache-Ordner auszuleeren.

In der unveröffentlichten Newsstand-Version der App hätte sich Newsstand um die heruntergeladenen Dateien gekümmert. Die einzelnen Mediendateien hätten vom System einen Speicherort unter Caches zugewiesen bekommen. Über eine Zuordnung der aktuellen Folge und über den Zeitstempel der einzelnen Episoden hätte Newsstand die aktuelle Folge vor dem Löschen bewahren können und vorzugsweise zuerst alte Folgen gelöscht, wenn der Platz eng wird.

Außerdem wären Episoden, die noch unter iOS 4 geladen wurden, nach Caches verschoben worden, um sie vom iCloud Backup auszunehmen. (Das hat zum Cocoa Error 4 geführt, wenn keine alten Episoden gefunden wurden)

In der Bits und so App 1.2 (ohne Newsstand) sind alle Episoden also in Caches gespeichert worden und wären Gefahr gelaufen, vom System ausgeleert zu werden. Unpraktisch bei ~100MB-Dateien, wenn man kein oder nur langsames/teures Netz hat.

Mit iOS 5.0.1 gibt es eine neue Funktion, um auch ohne Newsstand Dateien vor dem automatischen Löschen zu beschützen. Wir hatten ja die entsprechende Diskussion in der Sendung.

Mit der App ab Version 1.2.1 werden jetzt also nach Apples Empfehlung alle Episoden als “Offline Data” behandelt und unter Library/Private Documents gespeichert und mit dem “Do Not Backup”-Flag gekennzeichnet. Damit werden die Dateien auch nicht mehr automatisch gelöscht.

Nach einem Restore fehlen die Mediendateien dann zwar, können aber dank der gesicherten Core Data-Daten über die gespeicherten Download-Links erneut geladen werden.

Einen Mechanismus, der alte oder gehörte Folgen zum Löschen freigibt, gibt es nicht – das Löschen bleibt dem Benutzer überlassen.