即使在电话被擦除后也要跟踪iOS设备

Sha*_*anK 2 objective-c ota ios

我一直在寻找各种方法来唯一识别iOS设备,并确保我们的应用程序在手机被擦除之前的同一设备上使用.

我知道查询UDID已被弃用,并且有一种新方法将设备映射到应用程序:CFUUID但该方法的问题是CFUUID给出的这个UUID在应用程序的每次新安装时都是不同的.

编辑:其实我的意思

[[UIDevice currentDevice] identifierForVendor]

而不是CFUUID.对不起,我指的是这个identifierForVendor,每次卸载应用程序时都不同.这是我在应用程序中不想要的.必须有一种方法,因为我擦了我的手机,Testflight能够将它识别为同一设备.我想知道他们怎么做到的.

即使在查询MAC地址(现在为所有设备返回相同的数字)并且不推荐使用UDID之后,testflight等服务以及所有分析服务仍然能够唯一地识别设备和用户.有人可以告诉我一种唯一识别iOS设备的机制,即使在手机擦除后也可以识别它.

我已经研究过Apple OTA配置,但我不确定这是否可以帮助以某种方式仅跟踪设备,而不是为登录我们服务的用户发回任何配置文件.

小智 7

在iOS 7上没有您想要的制裁,可公开访问的API.

您正在寻找的最接近的选择是

[[UIDevice currentDevice] identifierForVendor]
Run Code Online (Sandbox Code Playgroud)

来自Apple的文档:

对于来自同一设备上运行的同一供应商的应用,此属性的值相同.对于来自不同供应商的同一设备上的应用程序以及不同供应商的不同设备上的应用程序,将返回不同的值.

在iOS设备上安装app(或来自同一供应商的其他应用程序)时,此属性中的值保持不变.当用户从设备中删除所有该供应商的应用程序并随后重新安装其中一个或多个应用程序时,该值会更改.

  • iPhone"擦除"的性质意味着将删除所有供应商的所有应用程序.这不意味着`identifierForVendor`不适合OP的需求吗? (2认同)