ios7 uuid的获取方法
? ?
ios7后mac地址淪為雞肋,所以必須得重新想辦法獲取設備的id信息,apple推薦用UUID,但app重新安裝后,UUID需要重設,所以想到把UUID存儲到ios系統的keychain中,既然存儲在系統內,也就意味著即使app被刪除也不會丟失該屬性。
?//ios獲取uuid
#import "KeychainItemWrapper.h"
?
? ? KeychainItemWrapper *keychainItem = [[KeychainItemWrapperalloc]
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? initWithIdentifier:@"UUID"
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? accessGroup:@"com.game.userinfo"];
? ? NSString *strUUID = [keychainItem objectForKey:(id)kSecValueData];
? ? if ([strUUID isEqualToString:@""])
? ? {
? ? ? ? CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);
? ? ? ? strUUID = (NSString *)CFUUIDCreateString (kCFAllocatorDefault,uuidRef);
? ? ? ? [keychainItem setObject:strUUID forKey:(id)kSecValueData];
? ? }
? ? [keychainItem release];
? ? std::string?device_uuid = [strUUID UTF8String];
ps:注意引入?Security.framework 庫!上面的KeychainItemWrapper類從以下地址下載
https://developer.apple.com/library/ios/samplecode/GenericKeychain/Listings/Classes_KeychainItemWrapper_h.html#//apple_ref/doc/uid/DTS40007797-Classes_KeychainItemWrapper_h-DontLinkElementID_9?
?
除了上面的方法,還有一個輕量級的方法,推薦使用這個,使用超級簡單,而且完全開源
首先去系統取“uuid”字段,如果有直接使用,如果沒有,則create一個uuid并存入keychain中
? ??NSString *retrieveuuid = [SSKeychainpasswordForService:@"com.game.userinfo"account:@"uuid"];
? ? if ( retrieveuuid == nil || [retrieveuuid isEqualToString:@""])
? ? {
? ? ? ? CFUUIDRef uuid = CFUUIDCreate(NULL);
? ? ? ? assert(uuid != NULL);
? ? ? ? CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid);
? ? ? ? retrieveuuid = [NSString stringWithFormat:@"%@", uuidStr];
? ? ? ? [SSKeychain setPassword: retrieveuuid
?? ? ? ? ? ? ? ? ? ? forService:@"com.game.userinfo"account:@"uuid"];
?? ? ? ?
? ? }
?
注意導入?
SSKeychain這個類,可以去http://github.com/soffes/sskeychain上下載代碼文件,good luck!
?
?
轉載于:https://www.cnblogs.com/howeho/p/3316573.html
總結
以上是生活随笔為你收集整理的ios7 uuid的获取方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年突出贡献奖申报材料3篇
- 下一篇: 获取和保存照片