我正在用构建一个安装程序包
pkgbuild --component MyApp.app ... --scripts scriptsdir MyApp.pkg
我想在安装后设置一些用户默认值。所以我用制作了一个postinstall
脚本
defaults write com.mycompany.MyApp key -string value
然而,这不起作用——设置被写入/var/root/Library/Preferences
,并且只能由sudo defaults read
访问。
所以我尝试了这个:
defaults write ~/Library/Preferences/com.mycompany.MyApp key -string value
现在它们被写入正确的位置,但权限是错误的——stat
显示plist文件上的权限是-rw------- 1 root wheel
,而defaults read
无法访问它们。如何使其正确工作?
不要这样做。
如果你的应用程序需要某些"默认"默认值才能运行,在第一次启动时,请注意它们不存在,并将其写出来。
你对安装的假设太多了:进行安装的用户是软件的主要用户;机器上只有一个用户可能对使用该软件感兴趣;任何人都已登录!
相反,让你的应用程序在首次启动时设置其默认环境。这将适用于机器上的所有用户,包括安装软件后创建的用户。