- À cause de conflits de fichiers cachés dans iCloud Drive, des paragraphes récemment écrits ou des modifications de code ont disparu, avec une perte survenue avant l’enregistrement des sauvegardes
- Le conflit correspondait à une situation où le système estimait qu’il existait des versions différentes d’un même fichier sur Mac et iPhone, mais les fichiers concernés n’avaient jamais été ouverts sur iPhone
- Dropbox conserve séparément les fichiers en conflit, mais iCloud Drive ne les expose pas dans le système de fichiers, si bien que seule une fenêtre de choix apparaît dans les éditeurs qui prennent en charge la résolution de conflits
- Dans des éditeurs comme Textifier, Xcode ou Obsidian, qui ne gèrent pas les conflits, iCloud choisit la version à enregistrer, et avec le temps la bonne version peut être écrasée dans les sauvegardes
- Il est plus sûr de conserver les données importantes hors d’iCloud Drive et de surveiller les modifications des fichiers essentiels avec un dépôt Git ; Cloud Cub est aussi en cours de développement pour les fichiers qui doivent rester sur iCloud
Conflits de fichiers cachés dans iCloud Drive
- Pendant la rédaction d’un document, un paragraphe tout juste saisi a disparu, et lors du développement d’une app, Xcode a commencé à afficher plusieurs erreurs dans un code qui ne posait aucun problème jusque-là
- Les modifications récentes de plusieurs fichiers avaient été effacées
- La perte est survenue avant que Time Machine ou Backblaze n’enregistre une sauvegarde
- La cause était un conflit de fichiers détecté par iCloud Drive
- iCloud Drive a jugé qu’il existait des versions différentes d’un même fichier sur Mac et iPhone et qu’une fusion automatique était impossible
- Pourtant, les fichiers affectés n’avaient jamais été ouverts sur iPhone
- Comme le dossier Documents du Mac avait été déplacé vers iCloud, ces fichiers s’y trouvaient
- En cas de conflit de versions, Dropbox enregistre un fichier de conflit séparé avec un nom du type « (John Doe’s conflicted copy) »
- iCloud Drive, lui, n’affiche pas ces conflits dans le système de fichiers
- Si l’on ouvre le fichier dans un éditeur qui prend en charge la gestion des conflits, une fenêtre demande quelle version conserver
- Dans des éditeurs comme Textifier, Xcode ou Obsidian, qui ne gèrent pas les conflits, c’est iCloud qui décide quelle version sera conservée sur le disque et dans les sauvegardes
Conditions de récupération et réponses possibles
- Avec le temps, si une nouvelle sauvegarde écrase une ancienne sauvegarde qui contenait la bonne version, le contenu peut être perdu définitivement
- Pour récupérer le fichier, il faut l’ouvrir avec un éditeur prenant en charge la résolution des conflits
- L’éditeur utilisé dans l’exemple est iA Writer
- Une fois le fichier déplacé hors d’iCloud Drive, cette méthode n’aide plus
- Lors des tests, le fait de remettre dans iCloud un fichier non modifié faisait réapparaître la fenêtre des versions en conflit, mais cela peut ne pas fonctionner si le fichier a été modifié ou si l’on a continué à travailler sur une copie
- Le fait de masquer les conflits de versions peut sembler plus convivial, mais on peut ne découvrir la perte de données que des années plus tard, lors de la réouverture d’un document important
- Tant qu’iCloud Drive n’exposera pas les conflits de versions dans le système de fichiers ou dans un emplacement central facile d’accès, il est plus sûr de déplacer les données importantes hors d’iCloud Drive
- Un outil appelé Cloud Cub est en cours de création pour détecter et résoudre les conflits de synchronisation cachés pour les fichiers qui doivent rester dans iCloud Drive
1 commentaires
Avis de Hacker News
J’ai vécu quelque chose de similaire : la synchronisation cloud était activée dans Notes sur l’iPhone de ma femme, et comme je pensais que ce n’était pas nécessaire, je l’ai désactivée. Ma femme m’a alors dit : « Où sont passées toutes mes notes ? Qu’est-ce que tu as fait ? »
J’ai eu des sueurs froides, mais je me suis souvenu qu’il y avait un iPad avec l’app Notes synchronisée ; je l’ai ouvert immédiatement et j’ai coupé le WiFi pour « préserver » les notes
J’ai appelé Apple, et le conseiller du support a trouvé une méthode consistant à copier-coller chaque note dans un nouveau dossier pour éviter qu’elle ne soit supprimée
Ça a été assez stressant pendant plusieurs heures, et je pense qu’Apple aurait dû afficher davantage d’avertissements ou de pop-ups sur toutes les conséquences de ce genre d’action
Au passage, j’ai aussi appris que le support technique d’Apple peut en pratique accéder au téléphone « façon VNC », voir ce qu’il y a à l’écran et modifier des réglages. Je crois qu’il y a eu une demande d’autorisation et que j’ai appuyé sur « Accepter », mais je ne savais même pas qu’une telle fonction existait avant de la voir en action
Et ce alors même que la cause semblait être une erreur de l’utilisateur. Mon entreprise paie très cher des produits Google, mais il est très peu probable que Google aide par téléphone pour ce genre de chose
Par le passé, il m’est arrivé de parler à un interlocuteur pour des sujets comme le contrôle d’accès, mais si je demandais de l’aide parce que des notes Keep ont disparu, j’imagine qu’on me répondrait poliment d’aller me faire voir. En pratique, les notes Keep disparaissent aussi de temps en temps
Le problème de votre femme semblait plutôt venir de la personne qui gérait l’appareil iOS que d’Apple
Je suis vraiment d’accord un million de fois. Mais ce n’est pas seulement un problème d’iCloud : cela ressemble à une tendance fondamentale de l’ensemble des logiciels Apple
Je le constate aussi régulièrement quand je surligne des PDF dans Books. Parfois, quand je rouvre un PDF, plusieurs pages récemment surlignées ont disparu
Pendant que je travaille, tout semble être enregistré en continu, mais pour une raison inconnue, le système considère la version de 11 h 35 comme la dernière version principale, et non celle de 11 h 45
Le problème d’Apple qui écrase silencieusement du nouveau contenu avec une ancienne version dure depuis au moins dix ans
Je ne comprends pas comment un défaut critique pareil a pu entrer dans le système au départ, ni pourquoi il n’est toujours pas corrigé
C’est gratuit et sous licence BSD, mais il faut garder en tête qu’il faut exporter en PDF annoté si l’on veut voir les changements dans d’autres apps
Si vous êtes fatigué par le fond orangé d’Apple qui tue le contraste, ou par l’absence d’un vrai surligneur jaune, ça vaut le coup d’essayer. Je n’y suis pas lié, je suis juste content que ça existe
https://skim-app.sourceforge.io/
Côté matériel aussi, je me souviens qu’ils ont coupé assez brutalement le cordon avec les disquettes, les lecteurs optiques, et même trois fois avec des architectures CPU entières
Avec iCloud, on dirait que cette attitude s’applique aussi aux fichiers. Je ne dirais pas que tout est mauvais, mais plus je vieillis, plus cela s’éloigne de mes goûts
L’auteur suggère d’utiliser git, mais git ne fonctionne pas bien avec iCloud Drive
J’avais autrefois des centaines de dépôts git dans iCloud Drive, et quand je faisais un gros commit, tout mon iCloud Drive de plusieurs centaines de Go se resynchronisait avec les serveurs d’Apple, ce qui prenait une journée
J’ai essayé de résoudre le problème en le faisant remonter assez haut auprès du support Apple, mais ça n’a jamais été réglé. Aujourd’hui, je garde mes dépôts git en dehors d’iCloud Drive
Ce phénomène semble se déclencher quand on modifie rapidement et simultanément des centaines de fichiers avant que la dernière grosse synchronisation de changements ne soit terminée
Les deux ne vont pas bien ensemble, et surtout si plusieurs appareils sont synchronisés avec le même lecteur cloud, cela laisse la porte ouverte à toutes sortes de comportements bizarres et inattendus
Le problème, c’est qu’une application que je dois absolument utiliser ne prend en charge aucune autre méthode de synchronisation ; je dois donc utiliser iCloud Drive pour une partie de mes fichiers importants
Sans git, je n’aurais même pas pu savoir quels fichiers avaient changé. Même avec git, je ne peux pas être certain d’avoir tout détecté. J’imagine que des conflits de synchronisation iCloud pourraient aussi modifier le contenu de git
Ce n’est pas idéal pour de très grosses données, mais ce que je veux conserver dans iCloud Drive tout en versionnant agressivement est généralement du texte ou de petits fichiers, donc conserver deux copies ne coûte presque rien
[1] https://github.com/anishathalye/git-remote-dropbox
Une raison encore plus importante de ne pas utiliser iCloud Drive est que le chiffrement de bout en bout n’est pas activé par défaut.
Tout ce que vous y stockez peut être lu par les administrateurs système d’Apple, le support, et ceux qui peuvent l’exiger d’Apple, par exemple le gouvernement américain, qui peut désormais le faire même sans mandat.
Mieux vaut ne pas utiliser de service qui n’est pas chiffré de bout en bout.
Il existe bien aujourd’hui un chiffrement de bout en bout optionnel dans iCloud, mais il est désactivé par défaut et enfoui profondément dans les réglages, si bien que presque personne ne l’utilise.
J’utilise Syncthing pour conserver mes fichiers sur tous mes appareils. C’est chiffré de bout en bout, c’est un logiciel libre, et la gestion des conflits comme les sauvegardes de versions sont raisonnables.
Il prend aussi en charge des appareils dédiés uniquement à la synchronisation, non fiables, qui ne voient jamais les données en clair, ce qui permet de placer en toute sécurité un nœud sur un VPS ou dans un lieu externe.
Il est facile de convaincre des amis ou de la famille d’appuyer deux fois dans un menu pour l’activer, mais il n’est pas facile de les convaincre d’installer et de configurer Syncthing sur plusieurs appareils.
Défendre Syncthing, très bien, mais dire qu’iCloud Drive est mauvais parce qu’il n’active pas par défaut un réglage qui peut faire perdre toutes ses données à l’utilisateur moyen s’il perd ses clés, c’est un peu risible.
Je peux garantir que votre grand-mère préférera largement pouvoir appeler Apple pour récupérer les photos du petit Johnny si elle oublie son mot de passe, plutôt qu’un système plus sûr par défaut.
Moi aussi, j’aimerais activer le chiffrement de bout en bout, mais je ne me fais pas assez confiance pour ne pas perdre la clé.
Ce n’est pas non plus une situation comme la messagerie, où l’autre personne doit elle aussi activer le chiffrement de bout en bout.
https://support.apple.com/en-ca/HT212520
Moi aussi, ça m’a passablement énervé. J’avais placé ma bibliothèque Calibre dans le dossier Documents. Où la mettre ailleurs, puisqu’en plus une sauvegarde gratuite est incluse ?
Mais il y a quelque temps, j’ai découvert que certains dossiers de livres dans la bibliothèque, qui auraient dû contenir les fichiers epub eux-mêmes, étaient vides.
La structure de répertoires et les entrées de la base de données étaient là, mais les fichiers des livres avaient disparu. Pas tous : environ 40 %, au hasard.
Conclusion : ne stockez pas ce que vous aimez dans iCloud Drive, surtout pas des livres.
À propos du passage : « Si vous ouvrez un fichier dans un éditeur qui prend en charge la gestion des conflits, une fenêtre s’affiche pour vous demander quelle version conserver. Les éditeurs sans gestion des conflits, comme Textifier, Xcode ou Obsidian, laissent iCloud décider quelle version stocker sur le disque et dans la sauvegarde », je pense qu’une partie de la responsabilité revient aussi aux développeurs d’apps qui ont ajouté la prise en charge d’iCloud sans ajouter de mécanisme de gestion des conflits.
Mais pourquoi Xcode, une app d’Apple elle-même, ne prend-elle pas en charge la gestion des conflits ? Les logiciels Apple devraient fixer le standard pour les développeurs tiers.
Si Apple ne gère pas les conflits de versions, les autres développeurs ne le feront évidemment pas non plus.
Même en utilisant un éditeur qui prend en charge la gestion des conflits, on peut perdre du contenu.
Si l’on suppose que vous écrivez quelque chose, que vous l’enregistrez, puis que vous fermez l’éditeur sans le rouvrir, iCloud peut remplacer le contenu de ce fichier et vous n’avez aucun moyen de le savoir.
La seule façon de ne pas perdre de données est de créer un dépôt Git, ou d’ouvrir régulièrement tous les fichiers importants dans un éditeur qui prend en charge la gestion des conflits.
Ce n’est pas un bug de Xcode, c’est un bug d’iCloud.
Si vous placez des fichiers dans iCloud Drive, l’iPhone peut supprimer à tout moment la copie locale.
Si vous voulez synchroniser des fichiers tout en étant certain à 100 % de disposer d’une copie locale, il faut placer les mêmes fichiers à la fois dans iCloud Drive et dans le dossier « Sur mon iPhone ».
C’est pour cela qu’Apple Books, Numbers et toutes les apps qui utilisent iCloud Drive continuent de supprimer les copies locales.
J’ai créé une simple app de notes utilisant iCloud Drive, et dès que je fermais l’app, iCloud supprimait avidement même un fichier txt de 2 Ko. Parfois, il ne le supprimait pas, donc c’était assez aléatoire.
Peu importe qu’il reste beaucoup d’espace de stockage, iCloud peut aussi supprimer la version locale de fichiers que vous utilisez constamment.
Le support développeur d’Apple a dit qu’il ne pouvait rien faire. Les développeurs n’ont même pas de moyen de marquer un fichier comme ne devant jamais être supprimé.
Dans sa documentation officielle, Apple recommande effectivement de conserver tous les fichiers de l’utilisateur dans iCloud Drive et de ne pas garder de copies dans « Sur mon iPhone ».
J’ai rencontré un problème similaire avec la disparition de contacts. Cela s’est produit pendant un certain temps, mais au début je pensais que c’était de ma faute.
Un matin, en constatant que le contact d’un ami à qui j’avais envoyé des messages la veille au soir avait disparu, j’ai compris que le problème venait d’iCloud.
J’ai contacté le support Apple et, après avoir suivi toutes les recommandations de base, l’interlocuteur a reconnu qu’il s’agissait d’un problème connu, mais qu’ils n’avaient pas identifié la cause profonde et n’avaient pas de solution.
Il m’a demandé de surveiller mes contacts pour savoir quand les suppressions se produisaient, mais il fallait leur donner une fenêtre de quelques minutes.
La raison était que « l’iPhone génère beaucoup de logs, donc si vous ne pouvez pas dire exactement quand cela s’est produit, les ingénieurs ne peuvent pas les examiner ».
Je trouvais déjà plutôt correct d’avoir réduit le bug à une fenêtre de 8 heures, mais l’interlocuteur m’a dit que les ingénieurs demandaient une précision à quelques minutes près.
Au final, comme chaque fois que je confie un problème difficile au support Apple, l’interlocuteur a dit qu’il me recontacterait, mais il ne m’a jamais rappelé et rien ne s’est passé.
J’ai déplacé mes contacts vers Google et j’ai simplement oublié l’affaire.
Je me suis penché sur ce problème. Apple, pour éviter d’ennuyer excessivement les utilisateurs avec des conflits, a choisi, dans certaines conditions, une stratégie de synchronisation qui fait perdre des données utilisateur
Ils ont décidé de ne pas utiliser des techniques bien plus anciennes qui auraient permis de conserver les révisions en conflit
Le résumé est ici
https://www.youtube.com/watch?v=q8k1q6kf1W0
Les gens auraient alors pu chercher « qu’est-ce qu’Apple a fait à mes fichiers ? » et trouver comment les récupérer
Puisqu’on parle de ne pas déranger, iOS a discrètement modifié mes réglages d’appels lors d’une mise à jour, empêchant le téléphone de sonner pour certains appelants
C’était une sorte de fonctionnalité bidon censée apaiser l’esprit, mais à cause du fonctionnement du NHS il est difficile de rappeler, et j’ai manqué l’appel d’un chirurgien oncologue, ce qui m’a causé une grosse angoisse
Dans mon cas, iCloud Drive, parfois, ne se synchronise tout simplement pas et reste bloqué sur quelque chose. On peut voir l’état de synchronisation via l’icône iCloud Drive dans le Finder
Fermer toutes les apps sur macOS et iOS puis exécuter
killall birdrésout parfois le problème.birdest le service de synchronisation iCloud