Mavericks et la protection des fichiers plist

Sous OS X Mavericks, Apple a décidé de « protéger » les fichiers de préférences. Plus concrètement, il y a un cache qui empêche la modification « sauvage » des fichiers .plist d’une application : si vous essayez de modifier un fichier manuellement (ou de le supprimer), la version en cache remplacera automatiquement vos modifications.

Si vous passez par les commandes classiques (defaults write...), pas de soucis : ça devrait fonctionner. Mais si vous utilisez un éditeur de texte ou l’éditeur de plist de Xcode, ça ne fonctionnera pas.

Même chose, si vous essayez de supprimer sauvagement les préférences d’un programme en passant par le Finder, c’est peine perdue : le simple fait de relancer le programme récupère la version en cache du fichier précédent.

La solution « propre » consiste à obliger le système à lire les préférences avec la commande suivante :

defaults read ...

Si jamais ça ne fonctionne pas, il existe une autre solution.

Une autre solution que j’ai trouvé pour (vraiment) supprimer les préférences d’un programme consiste — c’est assez sale — à fermer le daemon qui gère la mise en cache.

C’est assez simple : il faut tuer le processus cfprefsd dans le Moniteur d’activité. Attention à un point : il y a a priori deux instances du processus, il faut simplement fermer celle qui est à votre nom et pas celle qui est lancée par l’utilisateur root.

Une fois le processus fermé, vous pouvez supprimer les fichiers .plist d’un programme. Ensuite, le mieux est de redémarrer. A n’utiliser qu’en cas de gros problèmes, évidemment…