- Wegen versteckter Dateikonflikte in iCloud Drive verschwanden kürzlich geschriebene Absätze oder Codeänderungen; der Verlust trat ein, bevor Backups gespeichert wurden
- Der Konflikt entstand in einer Situation, in der angenommen wurde, dass auf Mac und iPhone unterschiedliche Versionen derselben Datei vorhanden seien; die betroffene Datei war jedoch nie auf dem iPhone geöffnet worden
- Dropbox legt Konfliktdateien separat ab, iCloud Drive macht sie jedoch im Dateisystem nicht sichtbar, sodass ein Auswahl-Popup nur in Editoren mit Konfliktbehandlung erscheint
- In Editoren ohne Konfliktbehandlung wie Textifier, Xcode oder Obsidian wählt iCloud die zu speichernde Version aus; mit der Zeit kann die richtige Version durch Backups überschrieben werden
- Wichtige Daten sollten besser außerhalb von iCloud Drive liegen, und Kern-Dateien lassen sich sicherer über ein Git-Repository auf Änderungen überwachen; für Dateien, die in iCloud bleiben müssen, ist außerdem Cloud Cub in Entwicklung
Versteckte Dateikonflikte in iCloud Drive
- Beim Schreiben eines Dokuments verschwand ein gerade eingegebener Absatz, und während der App-Entwicklung zeigte Xcode mehrere Fehler in Code an, der zuvor problemlos funktioniert hatte
- Die jüngsten Änderungen an mehreren Dateien waren gelöscht
- Der Verlust trat ein, bevor Time Machine oder Backblaze sie sichern konnten
- Ursache war ein von iCloud Drive erkannter Dateikonflikt
- iCloud Drive ging davon aus, dass auf Mac und iPhone unterschiedliche Versionen derselben Datei vorlagen und diese nicht automatisch zusammengeführt werden konnten
- Die betroffenen Dateien waren jedoch nie auf dem iPhone geöffnet worden
- Da der Documents-Ordner des Macs nach iCloud verschoben worden war, lagen diese Dateien in iCloud
- Dropbox speichert bei Versionskonflikten zusätzlich eine Konfliktdatei mit einem Namen wie „(John Doe’s conflicted copy)“
- iCloud Drive zeigt denselben Konflikt nicht im Dateisystem an
- Öffnet man die Datei in einem Editor, der Konfliktbehandlung unterstützt, erscheint ein Popup, das fragt, welche Version beibehalten werden soll
- In Editoren ohne Konfliktbehandlung wie Textifier, Xcode oder Obsidian entscheidet iCloud, welche Version auf der Festplatte und in Backups gespeichert wird
Wiederherstellungsbedingungen und Gegenmaßnahmen
- Wenn mit der Zeit neue Backups frühere Backups überschreiben, in denen noch die richtige Version enthalten war, können Inhalte dauerhaft verloren gehen
- Für die Wiederherstellung muss die betroffene Datei mit einem Editor geöffnet werden, der Konfliktlösung unterstützt
- Der im Beispiel verwendete Editor ist iA Writer
- Nachdem die Datei aus iCloud Drive heraus verschoben wurde, hilft auch diese Methode nicht mehr
- In Tests erschien das Popup mit den Konfliktversionen erneut, wenn eine unveränderte Datei wieder nach iCloud verschoben wurde; wenn die Datei jedoch bearbeitet wurde oder man mit einer Kopie weitergearbeitet hat, muss das nicht der Fall sein
- Die Methode, Versionskonflikte zu verbergen, mag nutzerfreundlich wirken, doch möglicherweise bemerkt man den Datenverlust erst, wenn man wichtige Dokumente Jahre später wieder öffnet
- Bis iCloud Drive Versionskonflikte im Dateisystem oder an einer leicht zugänglichen zentralen Stelle offenlegt, ist es sicherer, wichtige Daten aus iCloud Drive herauszunehmen
- Für Dateien, die in iCloud Drive bleiben müssen, wird Cloud Cub entwickelt, um versteckte Synchronisierungskonflikte zu erkennen und zu beheben
1 Kommentare
Hacker-News-Kommentare
Ich habe etwas Ähnliches erlebt: Auf dem iPhone meiner Frau war in Notes die Cloud-Synchronisierung aktiviert, und als ich sie ausgeschaltet habe, weil ich dachte, sie sei nicht nötig, sagte meine Frau: „Wo sind all meine Notizen hin? Was hast du gemacht?“
Mir brach der kalte Schweiß aus, aber dann fiel mir ein iPad mit synchronisierter Notes-App ein. Ich öffnete sie sofort und schaltete das WLAN aus, um die Notizen zu „bewahren“.
Ich rief bei Apple an, und der Support-Mitarbeiter fand eine Methode: Jede Notiz in einen neuen Ordner kopieren und einfügen, damit sie nicht gelöscht wird.
Das waren ein paar ziemlich stressige Stunden, und ich finde, Apple hätte mehr Warnungen oder Pop-ups zu den vollständigen Auswirkungen solcher Aktionen anzeigen müssen.
Nebenbei erfuhr ich auch, dass der Apple-Support sich praktisch wie per „VNC“ auf ein Telefon schalten, den Inhalt ansehen und Einstellungen ändern kann. Ich glaube, es gab eine Berechtigungsanfrage und ich habe auf „Genehmigen“ getippt, aber bis ich es tatsächlich sah, wusste ich nicht einmal, dass es so eine Funktion gibt.
Und das, obwohl die Ursache nach einem eigenen Fehler aussah. Unser Unternehmen zahlt viel Geld für Google-Produkte, aber Google würde bei so etwas am Telefon mit ziemlicher Sicherheit nicht helfen.
Bei Dingen wie Zugriffskontrolle habe ich früher schon einmal mit einem Ansprechpartner telefoniert, aber wenn ich um Hilfe bitten würde, weil Keep-Notizen verschwunden sind, bekäme ich wohl höflich gesagt, ich solle mich verziehen. Tatsächlich verschwinden Keep-Notizen auch gelegentlich.
Das Problem deiner Frau lag wohl eher bei der Person, die das iOS-Gerät verwaltet hat, als bei Apple.
Dem stimme ich wirklich millionenfach zu. Aber das ist nicht nur ein iCloud-Problem, sondern wirkt wie eine grundlegende Tendenz in Apples Software insgesamt.
Das erlebe ich wiederholt auch beim Markieren von PDFs in Books. Manchmal öffne ich ein PDF erneut und mehrere zuletzt markierte Seiten sind verschwunden.
Während der Arbeit scheint ständig gespeichert zu werden, aber aus unbekanntem Grund wird die Version von 11:35 statt der von 11:45 als neueste Hauptversion betrachtet.
Dass Apple neue Inhalte stillschweigend mit einer alten Version überschreibt, gibt es seit mindestens zehn Jahren.
Ich verstehe nicht, wie so ein fataler Fehler überhaupt ins System gelangen konnte und bis heute nicht behoben ist.
Es ist kostenlos und BSD-lizenziert, aber man sollte daran denken, dass man als PDF mit Kommentaren exportieren muss, wenn man die Änderungen auch in anderen Apps sehen möchte.
Wer von Apples kontrasttötendem orangefarbenem Hintergrund oder dem Fehlen eines echten gelben Textmarkers genervt ist, sollte es ausprobieren. Ich bin nicht beteiligt, nur dankbar, dass es existiert.
https://skim-app.sourceforge.io/
Auch bei der Hardware erinnere ich mich, dass Apple Diskettenlaufwerke, optische Laufwerke und gleich dreimal ganze CPU-Architekturen ziemlich gnadenlos abgeschnitten hat.
Bei iCloud scheint sich diese Haltung auch auf Dateien zu übertragen. Ich würde nicht sagen, dass alles daran schlecht ist, aber je älter ich werde, desto weniger entspricht es meinem Geschmack.
Der Autor schlägt die Nutzung von git vor, aber git verträgt sich nicht gut mit iCloud Drive.
Früher hatte ich Hunderte von git-Repositories in iCloud Drive, und bei einem großen Commit wurde oft das gesamte iCloud Drive mit Hunderten GB erneut mit Apples Servern synchronisiert, was einen Tag dauerte.
Ich habe versucht, das mit dem Apple-Support bis auf eine ziemlich hohe Eskalationsstufe zu lösen, aber am Ende wurde es nie behoben. Jetzt liegen meine git-Repositories außerhalb von iCloud Drive.
Es scheint ausgelöst zu werden, wenn man schnell und gleichzeitig Hunderte Dateien ändert, bevor die Synchronisierung der letzten großen Änderung abgeschlossen ist.
Beides passt nicht gut zusammen, und besonders wenn mehrere Geräte mit demselben Cloud Drive synchronisiert sind, kann allerlei seltsames und unerwartetes Verhalten entstehen.
Das Problem ist, dass eine App, die ich zwingend verwenden muss, keine andere Synchronisierungsmethode unterstützt, sodass ich für einige wichtige Dateien iCloud Drive nutzen muss.
Ohne git hätte ich nicht einmal herausfinden können, welche Dateien geändert wurden. Selbst mit git kann ich nicht sicher sein, alles erfasst zu haben. Es scheint möglich, dass iCloud-Synchronisierungskonflikte auch den git-Inhalt verändern.
Für sehr große Daten ist das wohl nicht gut, aber die Dinge, die in iCloud Drive liegen und die ich aggressiv versionieren möchte, sind meist Text oder klein genug, dass zwei Kopien kaum ins Gewicht fallen.
[1] https://github.com/anishathalye/git-remote-dropbox
Ein noch wichtigerer Grund, iCloud Drive nicht zu verwenden, ist, dass Ende-zu-Ende-Verschlüsselung nicht die Voreinstellung ist.
Alles, was man dort speichert, können Apple-Systemadministratoren, Supportmitarbeiter und Personen lesen, die Apple dazu verpflichten können – zum Beispiel derzeit die US-Regierung, sogar ohne Durchsuchungsbefehl.
Dienste ohne Ende-zu-Ende-Verschlüsselung sollte man besser nicht nutzen.
Zwar gibt es in iCloud inzwischen optionale Ende-zu-Ende-Verschlüsselung, aber sie ist standardmäßig deaktiviert und tief in den Einstellungen vergraben, sodass sie fast niemand nutzt.
Ich verwende Syncthing, um Dateien auf allen meinen Geräten vorzuhalten. Es bietet Ende-zu-Ende-Verschlüsselung, ist freie Software und geht auch vernünftig mit Konflikten und Versions-Backups um.
Außerdem unterstützt es nicht vertrauenswürdige reine Synchronisationsgeräte, die den Klartext niemals sehen, sodass man sicher einen Node auf einem VPS oder an einem externen Standort betreiben kann.
Freunde oder Familienmitglieder davon zu überzeugen, zweimal durch ein Menü zu tippen und sie einzuschalten, ist leicht. Sie davon zu überzeugen, Syncthing auf mehreren Geräten zu installieren und zu konfigurieren, ist es nicht.
Syncthing zu befürworten ist ja schön, aber iCloud Drive schlechtzureden, weil es eine Einstellung, bei der Durchschnittsnutzer beim Verlust des Schlüssels alle Daten verlieren können, nicht standardmäßig aktiviert, ist etwas lächerlich.
Bei der Großmutter würde ich darauf wetten, dass sie viel lieber bei Apple anrufen und die Fotos vom kleinen Johnny zurückbekommen möchte, wenn sie ihr Passwort vergessen hat, als standardmäßig eine sicherere Lösung zu haben.
Ich würde Ende-zu-Ende-Verschlüsselung auch gern einschalten, aber ich vertraue mir selbst nicht genug, den Schlüssel nicht zu verlieren.
Es ist ja nicht wie bei Messaging, wo auch die Gegenseite Ende-zu-Ende-Verschlüsselung aktivieren muss.
https://support.apple.com/en-ca/HT212520
Darüber ärgere ich mich auch ziemlich. Ich hatte meine Calibre-Bibliothek im Ordner Documents abgelegt. Wo sollte ich sie sonst hinlegen, zumal dort ja kostenlose Backups dabei sind?
Vor einiger Zeit stellte ich dann fest, dass einige Buchordner in der Bibliothek, die eigentlich die tatsächlichen epub-Dateien enthalten sollten, leer waren.
Die Verzeichnisstruktur und die Datenbankeinträge waren noch da, aber nur die Buchdateien waren verschwunden. Nicht alle, sondern zufällig etwa 40 %.
Fazit: Was einem lieb ist, sollte man nicht in iCloud Drive speichern, insbesondere keine Bücher.
Zu der Stelle „Wenn man die Datei in einem Editor öffnet, der Konfliktbehandlung unterstützt, erscheint ein Popup, das fragt, welche Version behalten werden soll. Bei Editoren ohne Konfliktbehandlung, wie Textifier, Xcode oder Obsidian, überlässt man iCloud die Entscheidung, welche Version auf der Festplatte und im Backup gespeichert wird“: Ich finde, dass auch die App-Entwickler eine Mitschuld tragen, wenn sie iCloud-Support einbauen, aber keinen Mechanismus zur Konfliktbehandlung hinzufügen.
Aber warum unterstützt Xcode, eine Apple-eigene App, keine Konfliktbehandlung? Apple-Software sollte den Maßstab für Drittentwickler setzen.
Wenn nicht einmal Apple Versionskonflikte behandelt, werden andere Entwickler das natürlich auch nicht tun.
Auch mit einem Editor, der Konfliktbehandlung unterstützt, kann man Inhalte verlieren.
Angenommen, man schreibt etwas, speichert, schließt den Editor und öffnet ihn danach nicht erneut: iCloud kann den Inhalt dieser Datei austauschen, ohne dass man es bemerkt.
Die einzige Möglichkeit, keinen Datenverlust zu riskieren, ist, ein Git-Repository anzulegen oder alle wichtigen Dateien regelmäßig in einem Editor zu öffnen, der Konfliktbehandlung unterstützt.
Das ist kein Xcode-Bug, sondern ein iCloud-Bug.
Wenn man Dateien in iCloud Drive ablegt, kann das iPhone jederzeit die lokale Kopie entfernen.
Wenn man synchronisieren und zugleich sicher sein will, dass zu 100 % eine lokale Kopie vorhanden ist, muss man dieselbe Datei sowohl in iCloud Drive als auch im Ordner „Auf meinem iPhone“ ablegen.
Das ist der Grund, warum Apple Books, Numbers und jede App, die iCloud Drive nutzt, ständig lokale Kopien entfernen.
Ich habe eine einfache Notizen-App gebaut, die iCloud Drive nutzt, und sobald man die App schloss, entfernte iCloud gierig selbst 2-KB-txt-Dateien. Manchmal löschte es sie auch nicht, es war also ziemlich zufällig.
Es spielt keine Rolle, ob noch viel Speicherplatz frei ist, und iCloud kann sogar lokale Versionen von Dateien entfernen, die man ständig nutzt.
Der Apple Developer Support sagte, man könne nichts tun. Auch für Entwickler gibt es keine Möglichkeit, eine Datei als „niemals entfernen“ zu markieren.
In der offiziellen Dokumentation empfiehlt Apple tatsächlich, alle Dateien der Nutzer in iCloud Drive zu speichern und keine Kopien unter „Auf meinem iPhone“ abzulegen.
Ich hatte ein ähnliches Problem mit verschwindenden Contacts. Es trat eine Zeit lang auf, aber zuerst dachte ich, es sei mein Fehler.
Eines Morgens sah ich dann, dass der Kontakt eines Freundes, mit dem ich am Vorabend geschrieben hatte, verschwunden war, und mir wurde klar, dass das Problem iCloud war.
Ich kontaktierte den Apple Support, und nachdem wir alle grundlegenden Schritte durchgegangen waren, räumte der Mitarbeiter ein, dass dies ein bekanntes Problem sei, man aber die Ursache nicht gefunden habe und es keine Lösung gebe.
Er bat mich, die Kontakte zu überwachen, damit ich sagen könne, wann die Löschung passiert, und meinte, ich müsse den Zeitraum auf wenige Minuten eingrenzen.
Die Begründung war: „Das iPhone erzeugt viele Logs, und wenn Sie nicht genau eingrenzen können, wann es passiert ist, können die Ingenieure nichts damit anfangen.“
Ich fand, dass eine Eingrenzung des Bugs auf ein 8-Stunden-Fenster schon ziemlich gut war, aber der Mitarbeiter sagte, die Ingenieure verlangten eine Genauigkeit im Minutenbereich.
Am Ende sagte der Mitarbeiter, wie immer, wenn man dem Apple Support ein schwieriges Problem übergibt, er werde sich wieder melden – tat es aber nie, und es passierte nichts.
Ich habe meine Kontakte zu Google verschoben und die Sache einfach vergessen.
Ich habe mir dieses Problem angesehen. Apple hat sich offenbar für eine Synchronisierungsstrategie entschieden, die unter bestimmten Bedingungen Nutzerdaten verliert, um Nutzer nicht allzu sehr mit Konflikten zu belästigen.
Man hat sich also dagegen entschieden, deutlich ältere Verfahren zu verwenden, mit denen sich kollidierende Revisionen hätten erhalten lassen.
Die Zusammenfassung gibt es hier:
https://www.youtube.com/watch?v=q8k1q6kf1W0
Dann hätten die Leute nach „Was hat Apple mit meinen Dateien gemacht?“ suchen und herausfinden können, wie sie sie wiederherstellen.
Apropos nicht stören: iOS hat bei irgendeinem Update stillschweigend meine Anrufeinstellungen geändert, sodass es bei einigen Anrufern nicht mehr klingelte.
Das war so eine Art beruhigender Unsinns-Funktion; wegen der Eigenheiten des NHS habe ich dadurch den Anruf eines onkologischen Chirurgen verpasst, den man nur schwer zurückrufen konnte, was mich sehr beunruhigt hat.
Bei mir hängt iCloud Drive manchmal einfach irgendwo fest und synchronisiert nicht. Im iCloud-Drive-Symbol im Finder kann man den Synchronisierungsstatus sehen.
Alle Apps unter macOS und iOS zu schließen und
killall birdauszuführen, hilft manchmal.birdist der iCloud-Synchronisierungsdienst.