我有一个用例,希望将用户与特定设备ID绑定。因此,我需要一个唯一的设备标识符。
搜索此问题时,我发现了
之类的解决方案所以我的问题是可以读取任何唯一标识符吗? 如果是,那我怎么用swift或Objective-c读它?
答案 0 :(得分:1)
至少iOS 12.1不会在应用卸载时删除钥匙串。
此删除行为曾经在iOS10.3 Beta 2中引入,但稍后又恢复。
在某些情况下,Apple官方提供的DeviceCheck API可以作为解决方案。
如果满足您的要求,这似乎是最可靠和体面的方式。
c.f。 https://developer.apple.com/documentation/devicecheck
结合使用DeviceCheck API和服务器到服务器API,您可以在保持用户隐私的同时为每个设备设置和查询两位数据。您可能会使用此数据来识别已经利用您提供的促销优惠的设备,或者标记您确定为欺诈的设备。通过DeviceCheck API,您还可以验证收到的令牌来自已下载应用程序的真实Apple设备。
答案 1 :(得分:0)
在用户卸载应用程序后,不再有一种唯一标识设备的方法。该文档说:
在应用(或其他应用) 来自同一供应商的应用)安装在iOS设备上。价值 当用户从中删除该供应商的所有应用程序时,更改 设备,然后重新安装其中的一个或多个。
参考:https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor
答案 2 :(得分:0)
我的建议是将UUID和用例与用户绑定在一起,然后在用户当时注册后存储用例和UUID并为此创建唯一的userId。如果用户注销并再次登录您可以检查userID并使用诸如userEmail或contact这样不存在的唯一参数?如果存在,则将用例替换为new(如果您每次使用的用例)。
我希望它将对您有所帮助。 谢谢