我有一个要求,我不应允许用户在多于1台设备中安装我的应用。这是一个企业应用程序,我使用企业开发人员帐户分发了该应用程序。根据Google搜索,我使用 IdentifierForVendor 来获取唯一的设备ID,但这似乎不起作用,因为用户再次在同一设备上卸载并安装了该应用程序的新版本/相同版本。 ,它返回新的DeviceID。现在回到我的老问题-如何为IOS查找DeviceID?
我认为可行的方法是在用户卸载应用程序时停用DeviceID。但是我不确定如何实现此目标,因为在卸载应用程序时没有循环/函数调用。
答案 0 :(得分:1)
Apple documentation说,如果从设备上卸载了同一供应商的所有应用,则在新安装该供应商的任何应用时,将使用新的 IdentifierForVendor 。
>因此,我建议将此唯一ID存储在钥匙串中,每当您打开应用程序时,请检查是否在钥匙串中存储了任何唯一ID(如果没有),然后生成一个唯一ID并将其保留在那里。
如果还卸载了应用,则密钥仍将存在。
重新安装该应用程序后,当您访问钥匙串中的钥匙时,它仍然存在。
这样,您就可以实现对设备进行唯一跟踪的目标。
谈钥匙串,值得一看Xamarin.Essentials Nuget。它提供了包括钥匙串在内的许多跨平台功能。
希望这会有所帮助。
答案 1 :(得分:0)
使用此代码获取设备ID
var deviceId= UIDevice.CurrentDevice.IdentifierForVendor.ToString();