iOS-UUID和UDID

一.UDID(Unique Device Identifier)

 UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。这个UDID用得很广泛,但是在iOS5以及之后的版本中,被弃用了。

获取UDID的方法如下:
NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

二.UUID(Universally Unique Identifier) 
UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码.

获取UUID的方法如下:

NSString *uuid = [[NSUUID UUID] UUIDString] ;

UUID一般只生成一次,保存在iOS系统里面,如果应用删除了,重装应用之后它的UUID还是一样的,除非系统重置 。但是不能保证在以后的系统升级后还能用(如果系统保存了该信息就能用).

由于IOS系统存储的数据都是在sandBox里面,一旦删除App,sandBox也不复存在。好在有一个例外,那就是keychain(钥匙串)。
通常情况下,iOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。
keychain里保存的信息不会因App被删除而丢失。所以,可以利用这个keychain这个特点来保存设备唯一标识。


ARC环境下:使用keychain
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"private" accessGroup:nil];
// 设置数据
[wrapper setObject:[[NSUUID UUID] UUIDString] forKey:(__bridge id)kSecValueData];
// 读取数据
NSString *uuid = [wrapper objectForKey:(__bridge id)kSecValueData];



你可能感兴趣的:(iOS)