UDID和UUID之间的差异

use*_*567 37 iphone uuid udid ipad ios

有人说UDID (Unique Device IDentifier),有人说UUID (Universally Unique IDentifier).它们是否相同?它们之间有什么区别?

Rug*_*han 79

UUID(通用唯一标识符)基于每个应用程序.标识设备上的应用.只要用户没有完全删除应用程序,那么此标识符将在应用程序启动之间保持不变,并且至少允许您使用设备上的特定应用程序识别同一用户.不幸的是,如果用户完全删除然后重新安装应用程序,那么ID将会更改.

UDID(唯一设备标识符) 由40个十六进制字符组成的序列,用于唯一标识ios设备.此值可以通过iTunes检索,也可以使用UIDevice -uniqueIdentifier找到.源自MAC地址等硬件详细信息.

  • UUID不是基于每个应用程序,它是用于创建“唯一” ID的标准。identifierForVendor()是您所指的对象,它返回一个UUID,但advertiseIdentifier也是一个UUID。 (2认同)

use*_*143 5

你最好通过这个 - http://nshipster.com/uuid-udid-unique-identifier/

UUID(通用唯一标识符):128位的序列,可以保证跨越空间和时间的唯一性,由RFC 4122定义.

UDID(唯一设备标识符):40个十六进制字符的序列,用于唯一标识iOS设备(设备的社会安全号码,如果您愿意).此值可以通过iTunes检索,也可以使用UIDevice -uniqueIdentifier找到.源自MAC地址等硬件详细信息.


mor*_*oko 5

Apple显然已开始删除iOS5中对UDID(Unique Device IDentifier)的访问权限.无论如何,您现在可以做的最好的识别是使用UUID(通用唯一标识符).这必须基于每个应用程序.也就是说,无法再识别设备,但您可以识别设备上的应用程序.只要用户没有完全删除应用程序,那么此标识符将在应用程序启动之间保持不变,并且至少允许您使用设备上的特定应用程序识别同一用户.不幸的是,如果用户完全删除然后重新安装应用程序,那么ID将会改变,但这是任何人都可以做的最好的事情.


cod*_*cat 5

从 iOS 5 开始,Apple 已弃用 UIDevice uniqueIdentifier ,这意味着获取每个 iOS 设备的唯一 id 的传统方式现在将不起作用,即。 [[UIDevice currentDevice] uniqueIdentifier] 从 iOS 5 及更多版本失败。

因此,对于 UUID 的替代方案,我们可以使用 Apple 的 CFUUID 类来为设备创建唯一的 id。但是,我们真的需要记住,这个 inbuild 类将创建随机数,因此它们将在每次调用时返回不同的 id。不要使用 NSUserDefaults 来存储它,最好的方法是使用 Keychain。

因此,在这里我为您提供使用它的最佳方式,以便将其用作您设备的唯一密钥。

- (NSString *)createNewUUID {

    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [(NSString *)string autorelease];
}
Run Code Online (Sandbox Code Playgroud)

你做了:

http://whatsmyudid.com/

在此处输入图片说明

  • 顺便提一下,您附上的图片标有“获取 UUID”;但是,它实际上是在获取 UDID。我不期待修复,只是想把它记下来,以便其他读者知道。 (2认同)