Je construis un paquet d'installation avecComment utiliser "write par défaut" correctement depuis pkgbuild/productbuild?
pkgbuild --component MyApp.app ... --scripts scriptsdir MyApp.pkg
et je voudrais définir quelques paramètres utilisateur par défaut après l'installation. Je fis donc un script postinstall
avec:
defaults write com.mycompany.MyApp key -string value
Cependant, cela ne fonctionne pas - les paramètres écrits dans /var/root/Library/Preferences
, et ne sont accessibles par sudo defaults read
.
Ainsi, au lieu que j'essayé ceci:
defaults write ~/Library/Preferences/com.mycompany.MyApp key -string value
Maintenant, ils sont écrits au bon endroit, mais les autorisations sont fausses - stat
montre les autorisations sur le fichier plist sont -rw------- 1 root wheel
et defaults read
ne peuvent pas y accéder . Comment puis-je faire en sorte que cela fonctionne correctement?
Oui, j'apprécie certainement la valeur de '- [NSUserDefaults registerDefaults:]'. Mais ma motivation dans ce cas particulier est une volonté de séparer la configuration interne de l'entreprise des "défauts par défaut" actuels - le but est de le faire sans modifier le code source, afin qu'il puisse être publié proprement comme logiciel open source . Dans ce cas, les hypothèses d'installation que vous avez mentionnées sont en fait valides. – jtbandes
Donc, si vous êtes convaincu que l'écriture de valeurs par défaut dans un script postflight est la bonne chose à faire, considérez 'sudo -u $ USER par défaut écrire ...' 'man sudo' pour obtenir le concept de base. Alternativement, changez le propriétaire après l'écriture. Mais sachez que votre script va se casser si vos hypothèses sont fausses, et votre paquet ne peut pas être installé par des systèmes automatisés (puisque $ USER ne sera pas forcément une valeur utile). – gneagle