创建生命周期唯一ID的替代方法

Sun*_*iya 10 udid ios

我想为iphone/ipad设备创建UDID,它将保持不变,所以请告诉我是否有任何人有这个想法?

我搜索谷歌和堆栈溢出,但没有得到解决方案.

还有一些人建议使用OpenUDID和CFUUID,但当用户删除并重新安装你的应用程序时,CFUUID会有所不同.但我希望每个应用程序使用相同的UDID,这将在第一次生成,并且对于每个应用程序,每个设备的生命周期应保持不变.

βha*_*avḯ 8

编辑2

由于iOS升级并且根据新文档identifierForVendor不能保留应用重新安装的价值.我在这个链接上看到了答案.这可能有助于一种或另一种方式.只是要注意,即使系统重置,只有UDID才会保留,因此,即使在系统重置时,这个答案也可能成为寻求终身UDID的开发人员的限制.除此之外,提到的答案似乎很有用.

另请参阅此处摘要.


identifierForVendor可从UIDeviceClass Reference获得.

对于来自同一设备上运行的同一供应商的应用,此属性的值相同.

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

注意:适用 于iOS 6.0及更高版本.

编辑1根据UIDevice类参考的新版本

在iOS设备上安装app(或来自同一供应商的其他应用程序)时,此属性中的值保持不变.当用户从设备中删除所有该供应商的应用程序并随后重新安装其中一个或多个应用程序时,该值会更改.因此,如果您的应用程序将此属性的值存储在任何位置,则应优雅地处理标识符更改的情况.


编辑

我希望你能看到这个受欢迎的链接

1)MAC + CFBundleIdentifier的MD5

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

每个应用程序保持相同但每个应用程序不同.如果您删除并重新安装您的应用程序,每个应用程序将相同.

2)MAC的MD5

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

对于来自同一设备的所有应用,这将保持相同.如果您删除并重新安装您的应用程序,则每个设备都相同.

编辑3

注意:iOS 7中的此解决方案不再有用,因为iOS7中不再提供uniqueIdentifier.