如何从Xamarin IOS获取唯一的DeviceID

时间:2018-08-07 06:35:10

标签: ios xamarin xamarin.ios

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

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

2 个答案:

答案 0 :(得分:1)

Apple documentation说,如果从设备上卸载了同一供应商的所有应用,则在新安装该供应商的任何应用时,将使用新的 IdentifierForVendor

>

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

如果还卸载了应用,则密钥仍将存在。

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

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

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

希望这会有所帮助。

答案 1 :(得分:0)

使用此代码获取设备ID

var deviceId= UIDevice.CurrentDevice.IdentifierForVendor.ToString();