我应该为该物理机上的所有用户注册macOS应用程序。我目前正在使用nsuserdefaults来存储注册信息,但这会阻止机器的其他用户使用该软件,因为nsuserdefaults是特定于用户的。
我已经研究过使用CFPreferences API:
CFPreferencesSetValue(key,
value,
kCFPreferencesCurrentApplication,
kCFPreferencesAnyUser,
kCFPreferencesCurrentHost);
但这需要root权限,我不希望我的应用程序需要root权限。
在不需要root权限的情况下,为机器的所有用户存储注册信息的最佳方法是什么?
答案 0 :(得分:0)
我所做的是在/Library/Application Support
中创建一个文件夹,任何人都可以在我的安装程序包中的postinstall脚本中写入。然后应用程序可以在该文件夹中执行任何操作,事实上,与您一样,我主要使用它来存储注册信息。
该文件夹应该被命名为您的应用程序的软件包ID,并且您的安装程序包需要设置为以root身份运行,以便postinstall可以首先创建该文件夹。
如果您还没有安装程序包,则必须制作一个。为此,我建议Packages。避免使用Apple的Package Maker工具 - 这很糟糕。