utilitaire "user defaults"
tablier
Membre
Il y a quelque temps j'ai croisé sur le web un utilitaire qui permet d'examiner les "user default" dans la "data base" d'un utilisateur. Malheureusement, je n'ai pas noté ou j'ai vu cela, et je n'ai pas noté non plus le nom de l'appli!!
>:( y a des jour ou je me demande à quoi je pense!!!
L'un d'entre vous connait-il ce logiciel?
>:( y a des jour ou je me demande à quoi je pense!!!
L'un d'entre vous connait-il ce logiciel?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Par exemple pour lire toutes les clés NSUserDefaults attachées à Safari, --> Il suffit donc de mettre le bundle identifier de l'appli qui t'intéresse derrière "defaults read". Et en paramètre supplémentaire tu peux rajouter la clé que tu veux lire, si tu veux lire une clé spécifique. De même il existe "defaults write" pour écrire dans la base des UserDefaults.
Tu peux aussi te contenter de "defaults read" pour lire TOUS les UserDefaults de tous les domaines, etc (et faire le tri ensuite), je te laisse potasser la page "man" de la commande "defaults".
[EDIT]Ah ah ! pour une fois que je grille Renaud
[tt]defaults read | grep Terme[/tt]
ou si tu recherches dans les prefs d'une appli (ou un domaine)
[tt]defaults read com.apple.Safari | grep Terme[/tt]
où tu remplaces Terme par le terme que tu recherches (si tu connais en plus les expressions régulières, c'est très très efficace). ça te renvoie la liste des préférences dont la clé ou la valeur contiennent le terme recherché.
Â
La raison de ma recherche est la suivante:
Si en cours de developpement j'ai un userdefault avec le mot clé "toto" et qu'en fin de developpement je n'utilise plus "toto", est-ce que je n'encombre pas inutilement les userdefault? Que ce passe t-il si en cours de travail je change le nom du bundle?
Je sais qu'on peut se contenter de penser que le système s'en démerde, mais ma curiosité a été la plus forte et la doc ne donne pas de réponse évidente.
Merci de vos réponses
(C'est logique : comment peut-il savoir que tu n'en as plus besoin sinon ?)
Ou alors je n'ai pas compris la question ?
+
Chacha
Et je dirais même plus :
1) Les UserDefaults de ton appli sont dans le fichier ~/Library/Preferences/bundleIdentifier.plist
2) Donc c'est lui qu'il faut ouvrir avec PropertyList Editor ou regarder, à moins que tu ne préfères [tt]defaults read bundleIdentifier[/tt] mais c'est vrai que pour le coup autant utiliser PropertyList Editor (fourni avec les DevTools)
3) Si tu veux faire le grand ménage, pour retrouver l'état dans lequel un nouvel utilisateur de ton appli serait, il suffit de supprimer ce fichier plist.
4) Si tu changes le nom de bundle, ou plus exactement si tu changes le bundleIdentifier de ton appli en cours de dev, il recréera un nouveau plist avec le nouveau bundleIdentifier. Donc tu auras toujours le fichier ancienBundleID.plist dans le dossier Preferences, plus le nouveau.
Tu peux alors supprimer l'ancien plist qui ne sert plus
tablier
D'acc'. En fait c'est pas mal que ce fil de discussion propose plusieurs solutions. C'est toujours ça de gagné pour ceux qui chercheront plus tard. D'autant que la commande "defaults" n'est pas super connue, donc c'était une bonne idée.
+
Chacha