如果有一种方法可以查看源代码就好了...
// Next we try to use an alternative method which uses the host name, process ID, and a time stamp
// We then hash it with md5 to get 32 bytes, and then add 4 extra random bytes
// Collision is possible of course, but unlikely and suitable for most industry needs (e.g.. aggregate tracking)
这其实是一个160位的随机字符串,有2^160种组合。因此极其不可能出现两个相同的情况。
如果应用程序使用UDID作为登录标识符,则这并不适合。如果您必须恢复设备,则UDID将会改变,而苹果的UDID是实际手机的一部分,将在恢复后保持不变。
这更像是广告商使用的cookie..它不需要100%准确,只需要大致准确。
iOS 5发布时,uniqueIdentifier被弃用,因此开始寻找一个不受苹果控制的UDID替代品。似乎OpenUDID是最广泛使用的开源UDID替代品。在您的项目中实现OpenUDID非常简单,并得到了许多广告提供商的支持。
NSString *openUDID = [OpenUDID value];
OpenUDID使用非常巧妙的方法来跨应用程序保留标识符。它使用特别命名的粘贴板来存储标识符。这样,其他使用OpenUDID的应用程序知道去哪里查找并可以获取已生成的标识符,而不是生成新的标识符。