Macos 在Mac中存储用户许可证数据的位置

Macos 在Mac中存储用户许可证数据的位置,macos,registry,licensing,Macos,Registry,Licensing,我有一个为Mac移植的windows应用程序。在windows中,我将加密数据存储在注册表中。但对于Mac,我并不熟悉 该应用程序是每台PC授权的。因此,所有使用该机器的用户都可以使用它。因此,在windows im中,将密钥存储在HKEY\LOCAL Machine 用户访问权限在Mac中是如何工作的?我需要将数据存储在哪里?此类数据通常存储在应用程序支持目录中的文件中。如果要为所有用户存储一个文件,应选择/Library/Application Support系统目录 该目录不可由用户写入,

我有一个为Mac移植的windows应用程序。在windows中,我将加密数据存储在注册表中。但对于Mac,我并不熟悉

该应用程序是每台PC授权的。因此,所有使用该机器的用户都可以使用它。因此,在windows im中,将密钥存储在
HKEY\LOCAL Machine


用户访问权限在Mac中是如何工作的?我需要将数据存储在哪里?

此类数据通常存储在应用程序支持目录中的文件中。如果要为所有用户存储一个文件,应选择
/Library/Application Support
系统目录

该目录不可由用户写入,因此您必须以root权限运行。沙盒应用程序无法使用此目录

您应该在此目录中创建一个子文件夹,并将文件存储在其中

有关更多信息,请参见表1-1“Mac应用程序的关键目录”和

编辑:

通常OSX应用程序不需要任何安装。它们是自包含的包,可以从任何位置运行。通常您会将它们保存在应用程序文件夹中(将其拖到那里)。所有用户都可以访问系统范围的
/Applications
文件夹。在每个用户的家中还有一个私有的
~/Applications
文件夹

另一方面,需要将数据安装到系统文件夹的应用程序使用安装程序。安装程序通常会将应用程序包复制到
/Applications
文件夹,但也会处理身份验证并向用户请求管理员凭据。安装程序也可以运行脚本

也许您的许可证可以在安装过程中通过脚本生成?
否则,您必须在第一次运行应用程序时生成许可证文件。在这种情况下,如果您想在
/Library/Application Support
中为所有用户保留一个文件,则必须升级权限并请求用户进行管理员访问。如果你不想这样做,考虑在他们的家里<代码> >库/应用程序支持< /COD>文件夹中存储每个用户的单独的许可文件。谢谢。我没有更多的问题与此有关。在Mac,当用户安装程序(通过拖放),程序只为那个特定的用户安装,对吗?Mac应用程序通常是如何安装的?它们是否通常附带安装程序?如果是,安装程序是否自动具有root权限。我不希望安装程序写入“/Library/Application Support”我的应用程序需要写入此文件夹。谢谢。您说应用程序文件夹可以在系统范围内访问。因此,我可以在没有根权限的情况下将许可证数据放在我的应用程序文件夹中吗?非管理员用户无法写入系统应用程序文件夹。此外,不建议在那里创建文件夹(尽管有些应用程序会这样做)。将文件存储在您的文件夹中也是个坏主意,因为在升级过程中可能会被用户替换。我认为您应该创建一个安装程序包,将应用程序包安装在
/Applications
文件夹中,并运行一个脚本,该脚本将准备每个人都可以编写的
/Library/Application Support/YOURAPP
文件夹(安装程序将以管理员权限运行)。然后,您的应用程序将能够在第一次运行时将许可证文件存储在那里,而无需管理员权限。谢谢,测试完成后,我将详细检查它。