如何在OS X中为应用强制重新加载首选项plist?

Gou*_*san 3 macos google-chrome swift

我的swift程序会定期更新com.google.Chrome.plist存储在中的文件/Library/Preferences

在初始执行期间,只需重新启动Chrome浏览器即可使策略生效。但是现在我需要重新启动系统以使策略生效。如何在不重新启动Mac的情况下更新它?

而且Reload policies按钮中的按钮chrome://policy也无法解决问题。(我想知道它的目的是什么?)

另外,请解释将plist文件放入/Library/Preferences和放入的区别/Library/Managed Preferences

还是有OS X的任何命令,例如gpupdate /force(对于Windows),如他们在这里所说

我最近还发现,其他应用程序也仍然存在此问题(我尝试从中编辑Safari的plist文件,~/Library/Preferences/com.apple.Safari.plist并且需要重新启动系统才能生效)

我在这里待了很长时间。向可能的方向轻推也可以!

谢谢!

Gou*_*san 6

原因是,从Mac OS Mavericks开始,苹果开始缓存plist文件,这导致手动替换plist文件无效,直到自动重新加载缓存为止。如果您打开使用此plist文件的应用程序,它会用旧的/缓存的文件覆盖您复制的文件。

要手动重新加载首选项文件,请使用defaults read <filename>.plist读取新的plist值。

资料来源:nethack

现在,我只是在执行程序后使用sh脚本来调用defaults