ios-获取在重新安装应用程序后必须相同的唯一标识符

ios-获取在重新安装应用程序后必须相同的唯一标识符,ios,Ios,我有一个用例,我想用一个特定的设备id绑定用户。因此,我需要一个唯一的设备标识符 当我搜索这个问题时,我发现了一些解决方案,如 正在创建UUID,但每次卸载 应用程序并重新安装 创建UUID将id存储在用户默认值或密钥链中,但最新版本的iOS会在卸载应用程序时删除密钥链和用户默认值 获取mac id也是不推荐的,因为它们总是返回一个模拟值 MAC地址02:00:00:00:00 那么我的问题是,是否可以读取任何唯一标识符? 如果是,那么我如何使用swift或objective-c阅读它?在用

我有一个用例,我想用一个特定的设备id绑定用户。因此,我需要一个唯一的设备标识符

当我搜索这个问题时,我发现了一些解决方案,如

  • 正在创建UUID,但每次卸载 应用程序并重新安装
  • 创建UUID将id存储在用户默认值或密钥链中,但最新版本的iOS会在卸载应用程序时删除密钥链和用户默认值
  • 获取mac id也是不推荐的,因为它们总是返回一个模拟值 MAC地址02:00:00:00:00
那么我的问题是,是否可以读取任何唯一标识符?
如果是,那么我如何使用swift或objective-c阅读它?

在用户卸载应用程序后,不再有唯一识别设备的方法。文件说:

当应用程序(或其他应用程序)运行时,此属性中的值保持不变 iOS设备上安装了来自同一供应商的应用程序。价值 当用户从中删除该供应商的所有应用程序时发生更改 然后重新安装其中一个或多个


参考资料:

至少iOS 12.1在卸载应用程序时不会删除密钥链

这种删除行为曾在iOS10.3 Beta 2中引入,但后来又恢复了


在某些情况下,苹果官方提供的DeviceCheck API可以作为解决方案

这似乎是最可靠和体面的方式,如果它符合您的要求

c、 f

使用DeviceCheck API,结合服务器到服务器API,您可以设置和查询每个设备的两位数据,同时维护用户隐私。您可以使用此数据识别已经利用您提供的促销优惠的设备,或者标记您确定为欺诈的设备。DeviceCheck API还允许您验证您收到的令牌是否来自下载应用程序的真实Apple设备


我的建议是,无论您与用户绑定了什么,都使用UUID和用例,然后在用户注册之后,存储您的用例和UUID,并为此创建唯一的用户ID。如果用户注销并再次登录,您可以检查用户ID和唯一参数,如userEmail或contact,该参数已存在,则不存在?如果存在,则用新用例替换您的用例(如果您每次都使用用例)

我希望它能帮助你。
谢谢

没有。请检查一下。