如何从 Xamarin IOS 获取唯一的 DeviceID

Joe*_* 89 0 xamarin.ios ios xamarin

我有一个要求,其中我不应允许用户在超过 1 台设备上安装我的应用程序。这是一个企业应用程序,我使用企业开发人员帐户分发它。根据Google搜索,我使用IdentifierForVendor来获取唯一的设备ID,但这现在似乎不起作用,因为当用户再次在同一设备中卸载并安装新/相同版本的应用程序时,它会返回新的DeviceID。现在我回到我的老问题 - 如何找到 IOS 的 DeviceID?

我认为一种可能的方法是在用户卸载应用程序时停用 DeviceID。但我不确定如何实现这一点,因为卸载应用程序时没有循环/函数调用。

Dur*_*n.H 5

Apple 文档称,如果从设备上卸载来自同一供应商的所有应用程序,则在重新安装该供应商的任何应用程序时将采用新的IdentifierForVendor

因此,我建议将此唯一 ID 存储在钥匙串中,每当您打开应用程序时,检查钥匙串中是否存储有任何唯一 ID,如果没有,则生成一个并将其保留在那里。

如果应用程序也被卸载,密钥仍然存在。

重新安装应用程序后,当您访问钥匙串中的密钥时,它仍然存在。

这样您就可以实现唯一跟踪设备的目标。

说到钥匙串,值得看看Xamarin.Essentials Nuget。它提供了包括钥匙串在内的许多跨平台功能。

希望这可以帮助。