iOS中利用KeyChain获取UUID(唯一标示符)

来源:互联网 发布:药品零售软件 编辑:程序博客网 时间:2024/05/07 11:50

我们经常会在App开发中,要获取设备的唯一标示符(UUID)。随着苹果对于其他获取唯一标示符的禁止,目前来说,利用KeyChain来获取唯一标示符(UUID)是最好的选择。对于KeyChain的基本知识,我就不多做介绍了。KeyChain是在设备上保存关键数据的唯一安全的地方。所以利用KeyChain也可以用来保存敏感信息,例如用户名或者登陆密码等。今天我们只介绍利用KeyChain来获取UUID。

苹果官方给出了一个示例,名字叫做KeychainItemWrapper。下载地址:点击打开链接。将下载下来的KeychainItemWrapper.h和KeychainItemWrapper.m文件拖入工程中。由于KeychainItemWrapper是非ARC的,所以必须要在.m文件的后面加上-fno-objc-arc。

而且必须要引入Security.framework框架。下面是KeychainItemWrapper的使用来获取UUID的代码。

-(NSString *) getKeychainIdentifier{    KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"deviceIdentifier" accessGroup:nil];        NSString *uniqueIdentifier = [wrapper objectForKey:(id)kSecAttrAccount];        if ([uniqueIdentifier isEqualToString:@""])    {        [wrapper setObject:[self getUUID] forKey:(id)kSecAttrAccount];    }        uniqueIdentifier = [wrapper objectForKey:(id)kSecAttrAccount];        return uniqueIdentifier;}#pragma mark - 获取UUID-(NSString *)getUUID{    CFUUIDRef uuid_ref = CFUUIDCreate(NULL);    CFStringRef uuid_string_ref= CFUUIDCreateString(NULL, uuid_ref);    CFRelease(uuid_ref);    NSString *uuid = [NSString stringWithString:(__bridge NSString*)uuid_string_ref];    CFRelease(uuid_string_ref);        return uuid;}
此方法可以获得唯一标识符,不管是否删除本应用,获得的UUID都是唯一的。

0 0
原创粉丝点击