【问题标题】:How to get Unique DeviceID from Xamarin IOS如何从 Xamarin IOS 获取唯一的 DeviceID
【发布时间】:2018-08-07 06:35:10
【问题描述】:

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

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

【问题讨论】:

  • 通常的做法是在设备钥匙串中添加一个 UUID。这将在应用程序卸载/重新安装后继续存在,但不会在设备重置后继续存在。当用户更换设备或擦除设备时,您将需要手动取消注册用户设备。企业应用分发的最佳实践是通过 MDM 进行,将用户限制为仅将其安装在您了解和控制的设备上。在这种情况下,一台设备的限制应该不是问题。

标签: ios xamarin xamarin.ios


【解决方案1】:

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

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

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

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

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

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2022-01-23
    相关资源
    最近更新 更多