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

时间:2018-07-03 11:54:22

标签: swift macos google-chrome

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

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

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

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

或者OS X上有任何命令,例如gpupdate /force(对于Windows)as they said here

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

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

来源:nethack

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