Entwickeln
Entwickeln
Deine Plattform auswählen

Cloud-Backup

Cloud-Backup ist ein System zur Sicherung von Geräte-App-Daten. Dies umfasst das Sichern von Fortschritt und Einstellungen für teilnehmende Apps in der Cloud, damit Entwickler*innen in der App dort fortfahren können, wo sie aufgehört haben. So ist es leichter, Apps mit neuen Headsets zu nutzen, Apps neu zu installieren oder ein Gerät zurückzusetzen. Cloud-Backup verwendet Android Auto Backup.
Cloud-Backup funktioniert auf Dateisystemebene und erfordert keine Programmierung. Apps sind standardmäßig aktiviert und du kannst sie über das Developer Dashboard deaktivieren oder Anpassungen vornehmen. Zum Schutz von Cloud-Backup-Daten werden App-Daten auf dem jeweiligen Gerät verschlüsselt und anschließend verschlüsselt auf unseren Servern gespeichert.
Nutzer*innen können Cloud-Backup in ihren Headset-Einstellungen deaktivieren.

Anwendungsfälle für App-Nutzer*innen

Wie kann ich Cloud-Backups für eine App, die mir gehört, anzeigen und löschen?

Um vorhandene Backups für alle deine Apps anzuzeigen, navigiere zum Tab Cloud-Backups auf der Meta Quest-Website.
Auf dieser Seite findest du eine Liste der eigenen Apps sowie einen Filter, um nach dem Namen zu suchen. Wenn eine App über ein Backup in der Cloud verfügt, werden ein Zeitstempel, die Größe sowie eine Option zum Löschen des Backups angezeigt.

Wann führt eine App, die mir gehört, ein Backup durch?

Backups werden automatisch zu folgenden Zeiten durchgeführt:
  • Einmal pro Nacht, wenn das Gerät inaktiv ist, geladen wird und mit einem WLAN verbunden ist, ähnlich wie bei der Aktualisierung des Betriebssystems durch das System.
  • Bei Deinstallation der App, sofern sie über den Store installiert wurde
  • Beim Beenden der App, höchstens einmal alle sechs Stunden
Jede*r Nutzer*in kann pro erworbene App und pro Headset über mehrere „Slots“ für die Sicherung verfügen. Dabei wird ein Slot nicht durch einen neuen Backup-Vorgang überschrieben. Neben automatischen Backups können Nutzer*innen auf dem Tab „Cloud-Backup“ in den Geräteeinstellungen Backups manuell anfordern.

Wann stellt eine App, die mir gehört, ihre Cloud-Backup-Daten wieder her?

Cloud-Backup stellt das neuste Backup für eine App bei der Installation automatisch wieder her. Nutzer*innen können auf der Webseite Cloud-Backups nachsehen, welches Backup wiederhergestellt wird. Außerdem können Nutzer*innen hier jederzeit anfordern, dass ein bestimmtes Backup manuell wiederhergestellt wird.

Werden die auf einem Gerät generierten Cloud-Backup-Daten auf ein anderes Gerät übertragen?

Ja. Wenn Cloud-Backup für eine bestimmte Kombination aus App und Gerät keine Daten findet, dann wird das letzte Backup für diese App auf allen eigenen Geräten wiederhergestellt.
Nehmen wir als Beispiel ein*e Nutzer*in, der*die über Cloud-Backup-Daten für eine App auf der Meta Quest 2 verfügt und gerade die Meta Quest 3 erworben hat. Nach Installation der App auf dem neuen Meta Quest 3-Headset stellt das Cloud-Backup-System gesicherte Daten von Meta Quest 2 wieder her, weil es keine Instanz gesicherter Daten für diese App finden kann, die mit Meta Quest 3 verknüpft sind.
Nachdem Cloud-Backup auf Meta Quest 3 durchgeführt wurde, werden diese Daten unter dem „Slot“ für die erworbene App, für das Meta Quest 3-Headset gesichert. Von nun an weichen die Cloud-Backups für Meta Quest 2 und Meta Quest 3 voneinander ab.
Nutzer*innen, die Cloud-Backup-Daten zwischen zwei Headsets kopieren möchten, können zum Tab Cloud-Backups auf der Meta Quest-Website navigeiren und die Cloud-Backup-Daten auf dem jeweiligen Headset wiederherstellen, auf das die Daten übertragen werden sollen. Für das Ziel-Headset wird automatisch ein neuer Slot für die übertragenen Cloud-Backup-Daten erstellt.
Cloud-Backup-Daten können von Headsets der neueren Generation (also Quest 3) auf Headsets der älteren Generation (also Quest 2) übertragen werden und umgekehrt.

Anwendungsfälle für App-Entwickler*innen

Wie aktiviere ich Cloud-Backup für meinen Titel, wenn unser Titel zuvor Cloud Saves V2 verwendet hat?

Klicke im Developer Dashboard in der linken Ansicht auf Entwicklung > Cloud-Speicher. Wähle deine App in der Dropdown-Liste aus. Vergewissere dich auf der Seite Cloud-Speicher, dass die Option Enable Automatic Cloud Backup (Automatisches Cloud-Backup aktivieren) eingeschaltet ist.
Mehr darüber, wie du Daten richtig speicherst, findest du unter Technische Implementierung.

Wie deaktiviere ich Cloud-Backup für meinen Titel, wenn ich es nicht nutzen möchte?

Deaktiviere im Meta Quest Dashboard unter Entwicklung > Cloud-Speicher die Option Enable Automatic Cloud Backup (Automatisches Cloud-Backup aktivieren).

Technische Implementierung

Du solltest App-Daten nur in unterstützten Verzeichnissen speichern, den Höchstwert von 100 MiB nicht überschreiten und Cloud-Backup für deine App im Developer Dashboard aktiviert haben.
Wenn diese Voraussetzungen erfüllt sind, wird automatisch ein Backup für die App durchgeführt.

Gesicherte Verzeichnisse

Autom. Backup berücksichtigt Dateien in den meisten Verzeichnissen, die deiner App vom System zugewiesen werden. Diese Dateispeicherorte kannst du über ein Context-Objekt aufrufen:
Bedenke, dass selbstdefinierte Ordner, die im Stammverzeichnis der App erstellt wurden, nicht gesichert werden. Wenn du selbstdefinierte Ordner erstellen möchtest, sollten sie sich in dem Verzeichnis befinden, das von getFilesDir() zurückgegeben wird.
Gesicherte Ordner
/data/data/<package-name>/files/
/data/data/<package-name>/<custom-folder>/
/sdcard/Android/data/<package-name>/files/
Nicht gesicherte Ordner
/data/data/<package-name>/cache/
/data/data/<package-name>/no_backup/
/sdcard/Android/data/<package-name>/cache/
/sdcard/Android/data/<package-name>/<custom-folder>

Nicht gesicherte Verzeichnisse

Die automatische Sicherung von Android schließt Dateien in Verzeichnissen aus, die von getCacheDir(), getCodeCacheDir() und getNoBackupFilesDir() zurückgegeben werden. Die hier gespeicherten Dateien werden nur vorübergehend benötigt und werden absichtlich von Backup-Vorgängen ausgeschlossen.
Darüber hinaus werden Ordner innerhalb von getFilesDir() mit dem Namen UnityCache nicht gesichert.
Standardmäßig sind diese ausgeschlossenen Verzeichnisse cache/ und UnityCache/.
Unter Entwicklung > Cloud-Speicher im Meta Quest Dashboard kannst du außerdem ausgeschlossene Dateien/Ordner anpassen, die nicht gesichert werden sollen. Beachte beim Angeben selbstdefinierter ausgeschlossener Dateien Folgendes:
  • Du kannst nur Pfade relativ zu den internen/externen Dateiverzeichnissen des Pakets angeben (das sind die von getFilesDir() oder getExternalFilesDir() zurückgegebenen Verzeichnisse).
    • Beispiel: Wenn die Daten, die du ausschließen möchtest, unter /storage/emulated/0/Android/data/com.company.somegame/files/UE4Game/SomeGame/SomeGame/BigFiles/SomeFile.txt gespeichert sind, würdest du UE4Game/SomeGame/SomeGame/BigFiles/SomeFile.txt als Ausschlusspfad angeben.
  • Wenn du einen selbstdefinierten Dateiausschluss angibst, werden alle übereinstimmenden Dateien/Ordner aus dem internen und externen Dateiverzeichnis ausgeschlossen. Es ist nicht möglich, eines der beiden Verzeichnisse als Ziel anzugeben.
  • Es können keine Platzhalter verwendet werden. Pfade müssen genau auf Dateien oder Ordner verweisen.
Um das Einschließen und Ausschließen von Dateien/Ordnern noch präziser zu steuern, nutze die Informationen in der Android-Dokumentation zum Einschließen von Dateien bei der automatischen Sicherung.

Sollten DLC-Dateien in Verzeichnissen gespeichert werden, die im Backup enthalten sind?

Platziere gespeicherte DLC-Spiele-Dateien und Konfigurationsdateien in einem der Verzeichnisse, die gesichert werden.
Platziere DLC-Asset-Dateien nicht in einem Backup-Verzeichnis.
Assets sollten sich in einem ausgeschlossenen Verzeichnis befinden, damit sie nicht gesichert werden. Wenn die Gesamtgröße 100 MiB übersteigt, schlägt das Backup fehl. Abgesehen davon könnte das Nutzungserlebnis dadurch beeinträchtigt werden. Einerseits laden Nutzer*innen dabei eine große Menge unnötiger Informationen hoch. Wenn sie die App löschen und sie nach einem Update der App erneut installieren, verschwenden sie andererseits wahrscheinlich Zeit mit dem Herunterladen alter Versionen von Dateien, die anschließend nahezu sofort aktualisiert werden. Mit der DLC-Berechtigung können sie diese Dateien wie üblich erneut herunterladen.

Wie können Entwickler*innen prüfen, wann das letzte Backup stattgefunden hat?

Auf der Seite Cloud-Backups auf der Meta Quest-Website kannst du prüfen, wann das letzte Backup für eine App durchgeführt wurde.
Das kannst du auch über den Tab „Cloud-Backup“ in den Geräteeinstellungen des Meta Quest-Geräts prüfen.

Wie können Entwickler*innen prüfen, welche Dateien in einem Backup enthalten sind?

Durch Überwachung von logcat während der Backup-Ausführung kannst du prüfen, welche Dateien im Backup enthalten sind. Es sollten Protokolle ausgegeben werden, die angeben, welche Dateien in einem Backup enthalten waren und wie groß sie sind. Das ist hilfreich, um zu prüfen, ob deine App das Backup-Limit von 100 MB überschreitet und du wissen möchtest, welche Dateien im Backup der App viel Platz benötigen, oder wenn du testen möchtest, ob kürzlich implementierte Regeln für Dateiausschluss/-einschluss wie gewünscht funktionieren.
Mit dem folgenden adb-Befehl kannst du logcat so filtern, dass nur Protokolle zu Backups zurückgegeben werden:
adb logcat | grep Backup

Testen

Testen von Cloud-Backup

Mit dem Android-Shell-Befehl bmgr kann das Backup-System getestet werden. Verwende den folgenden Befehl, um ein Backup für ein bestimmtes Paket zu erzwingen.
bmgr backupnow --monitor-verbose <package-name>
Der Befehl kann direkt von deinem lokalen Host mit adb shell oder aus einer adb-Shell-sitzung auf deinem Gerät ausgeführt werden.
Du kannst dich über weitere bmgr informieren, indem du den Befehl ohne Optionen ausführst.
Wichtig: Der ADB-Wiederherstellungsbefehl funktioniert in Version 35 NICHT. Es gibt jedoch eine Zwischenlösung: Wiederherstellungen WERDEN DURCHGEFÜHRT, wenn man eine App installiert. Derzeit ist es nicht möglich, Wiederherstellungen von ADB zu erzwingen. Du kannst nicht ein Backup erzwingen, dann zu einem anderen Headset wechseln und eine sofortige Wiederherstellung auf diesem Gerät erzwingen. Allerdings kannst du durch Deinstallation und Neuinstallation auf dem zweiten Headset die Wiederherstellung erzwingen.
Hinweis: Dies ist NICHT identisch mit dem Befehl „adb backup“, der nicht unterstützt wird.

Umschalten von Cloud-Backup in einer Live-App zu Testzwecken

Hinweis: Wir empfehlen, ÄUSSERST vorsichtig zu sein, wenn du dies planst. Es ist nicht ratsam, dies in einer Live-App durchzuführen.
In den Geräteeinstellungen kannst du die Backup- und Wiederherstellungsfunktion mit dem Cloud-Backup-Schalter deaktivieren. Standardmäßig ist sie für alle Nutzer*innen aktiviert. Mit einem neuen Button in der Speichereinstellungsansicht kannst du die Daten einer bestimmten App löschen.
Außerdem kannst du im Meta Quest Dashboard Cloud-Backup für deine App deaktivieren. Deaktiviere unter Entwicklung > Cloud-Speicher die Option Enable Automatic Cloud Backup (Automatisches Cloud-Backup deaktivieren).

Problembehebung

Aus welchen Gründen wird ein Verzeichnis üblicherweise nicht gesichert?
Gängige Beispiele für nicht konforme App-Daten:
  • Die App-Daten befinden sich in einem nicht unterstützten Verzeichnis (z. B. in einem selbstdefinierten Ordner im Stammverzeichnis).
  • Die App-Daten für die App haben eine Größe von mehr als 100 MiB.
  • Ein Verzeichnis, das Speicherdaten enthielt, wurde versehentlich von dem*der Entwickler*in gelöscht.
Muss die App aktualisiert oder geöffnet werden, damit das Backup stattfindet?
Grundsätzlich nicht. Angenommen, die App ist für das Backup geeignet und das Backup erfüllt die Voraussetzungen (siehe oben), erfolgt es automatisch.
Wie lösen Nutzer*innen manuell ein Backup aus (beispielsweise direkt vor dem Zurücksetzen auf Werkseinstellungen)?
Ad-hoc-Backups werden in der Ansicht „Cloud-Backup“ in den Geräteeinstellungen für Nutzer*innen und Entwickler*innen unterstützt. Entwickler*innen können sie außerdem mit dem bmgr-Befehl über ADB testen.
Was geschieht, wenn ein*e Nutzer*in über eine ältere Betriebssystemversion verfügt und das Meta Quest-Headset nicht eingeschaltet hat? Werden die gespeicherten Daten der Person beim Einschalten des Headsets gesichert?
Das Cloud-Backup wird nur dann ausgelöst, wenn auf dem Headset v35 des Betriebssystems installiert ist. Es gelten die üblichen Anforderungen für Betriebssystem-Updates.
Wie lösche ich einzelne gespeicherte Inhalte?
Öffne das Cloud-Backups-Profil. Neben allen gespeicherten Inhalten findest du eine Option zum Löschen. Klicke darauf, um gespeicherte Daten für diese App aus der Cloud zu löschen. Beachte, dass Löschungen irreversibel sind. Wenn du ALLE gesicherten Daten für diese App löschst, werden sie aus der Cloud entfernt. Unter Umständen verfügt die App auf mehreren Geräten über Backup-Daten. Das heißt, du musst unter Umständen die Backups für diese App auf allen eigenen Geräten löschen, damit sämtliche Cloud-Daten gelöscht werden.
Welches Backup wird bei Nutzer*innen gespeichert, die auf mehreren Geräten über App-Daten verfügen?
Jedes Gerät hat seinen eigenen Back-Verlauf. Ein auf einem Gerät generiertes Backup verursacht keine Konflikte mit Backups, die auf anderen Geräten generiert wurden, und überschreibt diese nicht.
Wie viele Backups werden für jede App gespeichert?
Jede App speichert maximal fünf Backups pro Gerät. Zudem werden die beiden ältesten Backups für eine App bis zu eine Woche nach dem Generieren aufbewahrt, bevor sie durch ein neueres Backup überschrieben werden.
Sobald ich eine App deinstalliere, heißt es, dass meine Daten unter Umständen dauerhaft gelöscht werden. Bedeutet das, dass Cloud-Backup nicht funktioniert?
Nein, das ist lediglich eine Warnung. Durch Deinstallation einer App werden die lokalen Daten entfernt. Cloud-Backups werden jedoch nicht gelöscht. Vergewissere dich unter Cloud-Backups in deinem Profil oder auf dem Tab „Cloud-Backup“ in den Geräteeinstellungen, dass das Backup sicher in der Cloud gespeichert ist.