麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

ios上取得設備唯一標志的解決方案

2019-11-14 19:55:59
字體:
來源:轉載
供稿:網友

     iOS 7中蘋果再一次無情的封殺mac地址,現在已經不能獲取ios7設備的物理地址。那么在開發中如何才能標識設備的唯一性呢?apple公司提供的方法是通過keychain來存一些標志信息,然后通過存的標志信息來讓應用程序來識別該設備的唯一性。

 apple公司寫了一個簡單的操作keychain的工具類:https://developer.apple.com/library/ios/samplecode/GenericKeychain/Listings/Classes_KeychainItemWrapper_m.html可以下載,把KeychainItemWrapper.h,.m文件引用xcode中,keychainItemWrapper.m文件可能出錯,這里是由于arc編譯造成的,我們可以根據提示進行解決,也可以用如下圖的方式解決:

 

 

 

接著設置keychain共享:如圖所示

    

此我們可以在項目中看到xxxxx.entitlements結尾的文件。<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/

<plist version="1.0">

<string>$(AppIdentifierPrefix)h.HelloWorld</string>

</plist>

其中的${AppldentifierPrefix}是開發者賬戶的的前綴,是apple的公司提供的,https://developer.apple.com/membercenter/index.action,可以用自已的賬戶進行查看。

存取:key chain:

java代碼 復制代碼 收藏代碼
  1. -(void) setKeyChainValue  
  2. {  
  3.     KeychainItemWrapper *keyChainItem=[[KeychainItemWrapper alloc]initWithIdentifier:@"TestUUID" accessGroup:@"XXXXXX.h.HelloWorld"];  
  4.     NSString *strUUID = [keyChainItem objectForKey:(id)kSecValueData];  
  5.     if (strUUID==nil||[strUUID isEqualToString:@""])  
  6.     {  
  7.         [keyChainItem setObject:[self gen_uuid] forKey:(id)kSecValueData];  
  8.     }  
  9.     [keyChainItem release];  
  10.   
  11. }  
  12.   
  13. -(NSString *) gen_uuid  
  14. {  
  15.     CFUUIDRef uuid_ref=CFUUIDCreate(nil);  
  16.     CFStringRef uuid_string_ref=CFUUIDCreateString(nil, uuid_ref);  
  17.     CFRelease(uuid_ref);  
  18.     NSString *uuid=[NSString stringWithString:uuid_string_ref];  
  19.     CFRelease(uuid_string_ref);  
  20.     return uuid;  
  21. }  
-(void) setKeyChainValue{    KeychainItemWrapper *keyChainItem=[[KeychainItemWrapper alloc]initWithIdentifier:@"TestUUID" accessGroup:@"XXXXXX.h.HelloWorld"];    NSString *strUUID = [keyChainItem objectForKey:(id)kSecValueData];    if (strUUID==nil||[strUUID isEqualToString:@""])    {        [keyChainItem setObject:[self gen_uuid] forKey:(id)kSecValueData];    }    [keyChainItem release];}-(NSString *) gen_uuid{    CFUUIDRef uuid_ref=CFUUIDCreate(nil);    CFStringRef uuid_string_ref=CFUUIDCreateString(nil, uuid_ref);    CFRelease(uuid_ref);    NSString *uuid=[NSString stringWithString:uuid_string_ref];    CFRelease(uuid_string_ref);    return uuid;}

   應用程序第一次在某臺設備上運行時,我們的應用程序保存一個uuid,來標識該設備。等設備把程序刪除時,該uuid依然存在于設備中。

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲涩涩图 | 俄罗斯hdxxx 日夜操天天干 | 日本aaaa片毛片免费观看视频 | 精品国产精品久久 | 国产精品久久久久久久久久iiiii | 亚洲小视频在线 | 国产一级毛片a | 特级a欧美做爰片毛片 | 啊~用cao嗯力cao烂我视频 | 日韩视频在线一区二区三区 | 娇妻被各种姿势c到高潮小说 | 黄色毛片一级 | av在线收看 | 久久成人综合视频 | 欧美成人一区二区视频 | 成码无人av片在线观看网站 | www69xxxxx| 欧美精品久久久久久久多人混战 | 成人精品久久久 | 日韩在线播放中文字幕 | 国产精品手机在线亚洲 | 狠狠干五月天 | 日本人乱人乱亲乱色视频观看 | 久草成人在线 | 中国美女一级黄色大片 | 国产精品99精品 | 黄视频网站免费在线观看 | 欧美成人黄色小视频 | 毛片大全免费看 | 国产精品自拍av | 北原夏美av | 久久精品女人天堂av | 国产精品区一区二区三区 | 日本在线播放一区二区 | 精品国产视频一区二区三区 | 国产91精品久久久久久久 | 亚洲男人的天堂在线视频 | 91美女视频在线观看 | 欧美亚洲黄色 | 久久亚洲成人 | www久 |