Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Xamarin IOS获取唯一的DeviceID_Ios_Xamarin_Xamarin.ios - Fatal编程技术网

如何从Xamarin IOS获取唯一的DeviceID

如何从Xamarin IOS获取唯一的DeviceID,ios,xamarin,xamarin.ios,Ios,Xamarin,Xamarin.ios,我有一个要求,即我不应允许用户在多个设备中安装我的应用程序。这是一个企业应用程序,我使用企业开发人员帐户分发了它。基于谷歌搜索,我使用供应商的标识来获取唯一的设备ID,但现在似乎不起作用,因为当用户在同一设备上卸载并安装新的/相同版本的应用程序时,它会返回新的设备ID。现在我又回到了我的老问题——如何为IOS找到设备ID 我认为一种可能的方法是在用户卸载应用程序时停用DeviceID。但我不知道如何实现这一点,因为卸载应用程序时没有循环/函数调用 表示,如果从设备上卸载了来自同一供应商的所有应用

我有一个要求,即我不应允许用户多个设备中安装我的应用程序。这是一个企业应用程序,我使用企业开发人员帐户分发了它。基于谷歌搜索,我使用供应商的标识来获取唯一的设备ID,但现在似乎不起作用,因为当用户在同一设备上卸载并安装新的/相同版本的应用程序时,它会返回新的设备ID。现在我又回到了我的老问题——如何为IOS找到设备ID

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

表示,如果从设备上卸载了来自同一供应商的所有应用程序,则在新安装该供应商的任何应用程序时,将为供应商提供新的标识

因此,我建议将此唯一id存储在Keychain中,并在每次打开应用程序时检查Keychain中是否存储了任何唯一id,如果没有,则生成一个并保存在那里

如果应用程序也已卸载,则密钥仍将存在

重新安装应用程序后,当您访问钥匙链中的钥匙时,它仍会在那里

通过这种方式,您可以实现唯一跟踪设备的目标

说到keychain,值得一看。它提供了许多跨平台的功能,包括keychain

希望这能有所帮助。

表示,如果从设备上卸载了来自同一供应商的所有应用程序,则在新安装该供应商的任何应用程序时,都将为供应商提供新的标识

因此,我建议将此唯一id存储在Keychain中,并在每次打开应用程序时检查Keychain中是否存储了任何唯一id,如果没有,则生成一个并保存在那里

如果应用程序也已卸载,则密钥仍将存在

重新安装应用程序后,当您访问钥匙链中的钥匙时,它仍会在那里

通过这种方式,您可以实现唯一跟踪设备的目标

说到keychain,值得一看。它提供了许多跨平台的功能,包括keychain


希望这有帮助。

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