您的位置:首页 > 产品设计 > UI/UE

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

2016-04-07 14:51 447 查看
我们经常会在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都是唯一的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: