当使用CFPreferences在osx上设置首选项时,有不同的偏好域。
通过阅读苹果开发指南,我了解到对于current-application,当前用户,当前主机首选项,它将存储在~/Library/Preferences/<应用程序包名称>.plist中。对于任意用户的current-application,current-host首选项,它将存储在/Library/Preferences/< application bundle name >.plist中。
但是在哪里存储其他域组合的首选项呢?例如当前用户、当前应用程序、任何主机?这些首选项会在设定时间(CFPreferencesSetAppValue中传播到~/Library/ preferences /< application bundle name >.plist的所有主机上,然后再同步),这些主机连接到本地网络并以当前用户身份登录吗?或者,在阅读过程中,所有主机都会被查询(但在这种情况下,如何处理来自不同主机的冲突首选项)?
对于任意应用程序域,首选项将存储在哪个域,如当前用户、任意应用程序、当前主机等。
发布于 2017-10-05 00:15:41
首选项的“默认”是当前用户、当前应用程序、任何主机。使用包名com.example作为示例,这些首选项将存储在
~/Library/Preferences/com.example.plist使这个“任意主机”的假设是,您的主目录存储在网络共享上。没有其他机制在计算机上同步它。一般来说,除非您设置的值确实需要特定于用户所在的物理机器,否则您应该始终使用任何主机。
为当前主机设置的首选项存储在ByHost目录下,文件名包括计算机的UUID,如:
~/Library/Preferences/ByHost/com.example.74263C97-28D5-4AF0-8E7A-3169F1CCB545.plist为所有应用程序设置的首选项存储在包名.GlobalPreferences下,例如:
~/Library/Preferences/.GlobalPreferences.plist同样,对于所有应用程序,当前主机:
~/Library/Preferences/ByHost/.GlobalPreferences.74263C97-28D5-4AF0-8E7A-3169F1CCB545.plist为所有用户设置的首选项遵循相同的模式,但在/Library/Preferences下除外。
https://stackoverflow.com/questions/46575892
复制相似问题