UDID和UUID之间的差异

时间:2014-02-19 05:54:26

标签: ios iphone ipad uuid udid

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

5 个答案:

答案 0 :(得分:76)

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

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

答案 1 :(得分:5)

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

  

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

     

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

答案 2 :(得分:5)

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

答案 3 :(得分:3)

从iOS 5开始,Apple已经弃用了UIDevice uniqueIdentifier,这意味着获取每个iOS设备的唯一ID的传统方式现在无效。   来自iOS 5及更高版本的[[UIDevice currentDevice] uniqueIdentifier]失败。

因此,对于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];
}

<强> UDID:

http://whatsmyudid.com/

enter image description here

答案 4 :(得分:1)

UDID,它是唯一设备标识符,应用于iTunes,管理Apple开发证书中的设备。它可以通过以下代码获得,在iOS5 SDK中:

[UIDevice currentDevice] uniqueIdentifier];

define is:

@property(nonatomic,readonly,retain) NSString    *uniqueIdentifier  __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_5_0);  // a string unique to each device based on various hardware info.

UUID,它是通用唯一标识符,是软件构建中使用的标识符标准,由开放软件基金会(OSF)标准化,作为分布式计算环境(DCE)的一部分(wiki)。

您可以通过以下代码获取UUID:

-(NSString*) uuid {  
    CFUUIDRef puuid = CFUUIDCreate( nil );  
    CFStringRef uuidString = CFUUIDCreateString( nil, puuid );  
    NSString * result = (NSString *)CFStringCreateCopy( NULL, uuidString);  
    CFRelease(puuid);  
    CFRelease(uuidString);  
    return [result autorelease];  
}

但是,在iOS7设备中,上面的方法将为差异设备返回相同的值。

有许多方法可以在link

中获取唯一标识符