iOS開發-用keychain替代UDID

來源:互聯網
上載者:User

從2013-5-1日開始蘋果就禁止對UUID的應用的通過了。所以我們需要用一些辦法替換,下面我就是用keychain的訪問替換掉UUID的。

那麼,關於Keychain的應用,Apple提供了一個叫GenericKeychain的例子程式,在這裡:http://developer.apple.com/library/ios/#samplecode/GenericKeychain/Listings/Classes_KeychainItemWrapper_h.html#//apple_ref/doc/uid/DTS40007797-Classes_KeychainItemWrapper_h-DontLinkElementID_9,其中封裝了一個簡化Keychain操作的類:KeychainItemWrapper,可以拿來直接使用。

 


1、首先應該匯入庫檔案:Security.framework 且需要把檔案KeychainItemWrapper.h和KeychainItemWrapper.m匯入到工程,並引用標頭檔:#import"KeychainItemWrapper.h"

2、代碼例子:


[plain]
NSString *str =nil; 
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:@"com.xxx.xxx"]; 
 
NSString *uuidStr = [keychainItem objectForKey:(id)kSecValueData]; 
if (uuidStr.length == 0) { 
    NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
    [keychainItem setObject:myUUIDStr forKey:(id)kSecValueData]; 
    str = myUUIDStr; 

else{ 
    str = [keychainItem objectForKey:(id)kSecValueData]; 

NSLog(@"======%@",str); 
return str; 

    NSString *str =nil;
    KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:@"com.xxx.xxx"];
   
    NSString *uuidStr = [keychainItem objectForKey:(id)kSecValueData];
    if (uuidStr.length == 0) {
        NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
        [keychainItem setObject:myUUIDStr forKey:(id)kSecValueData];
        str = myUUIDStr;
    }
    else{
        str = [keychainItem objectForKey:(id)kSecValueData];
    }
    NSLog(@"======%@",str);
    return str;

 

匯入Security.framework是因為KeychainItemWrapper檔案只是對Security一個封裝,更加利於我們的調用。

 

 


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.