在macOS上存储所有用户的读/写应用程序数据

在macOS上存储所有用户的读/写应用程序数据,macos,cocoa,nsuserdefaults,core-foundation,Macos,Cocoa,Nsuserdefaults,Core Foundation,我有一个macOS应用程序应该为该物理机器上的所有用户注册。我目前正在使用nsuserdefaults存储注册信息,但这会阻止机器的其他用户使用该软件,因为nsuserdefaults是特定于用户的 我研究了如何使用CFPreferences API: CFPreferencesSetValue(key, value, kCFPreferencesCurrentApplication,

我有一个macOS应用程序应该为该物理机器上的所有用户注册。我目前正在使用nsuserdefaults存储注册信息,但这会阻止机器的其他用户使用该软件,因为nsuserdefaults是特定于用户的

我研究了如何使用CFPreferences API:

 CFPreferencesSetValue(key,
                      value,
                      kCFPreferencesCurrentApplication,
                      kCFPreferencesAnyUser,
                      kCFPreferencesCurrentHost);
但这需要root权限,我不希望我的应用程序需要root权限


在不需要root权限的情况下,存储计算机所有用户的注册信息的最佳方法是什么?

我要做的是在
/Library/Application Support
中创建一个文件夹,任何人都可以在我的安装程序包中的postinstall脚本中写入该文件夹。然后应用程序可以在该文件夹中执行任何它喜欢的操作,事实上,就像您一样,我主要使用它来存储注册信息

文件夹应命名为应用程序的捆绑ID,安装程序包需要设置为以root用户身份运行,以便postinstall可以首先创建文件夹

如果您还没有安装程序包,则必须制作一个安装程序包。对于这一点,我推荐。避免使用苹果的软件包制造商工具——这太可怕了