iOS 保存IDFA到鑰匙串(keychain),IDFA多應(yīng)用間keychain共享

第一步,引入相關(guān)文件

1、添加資源庫

secruity.framework

圖片.png

2、添加鑰匙串工具類文件

SSKeychain.h,SSKeychain.m
下載地址:https://github.com/samsoffes/sskeychain/

圖片.png

第二步,開啟鑰匙串共享

圖片.png

在keychain groups中添加一個(gè)共享標(biāo)識(shí),例如:GFJD892DG9.GrassInfoAppFamily
其中“GFJD892DG9”為開發(fā)team ID,

查找team ID 看下圖 :

圖片.png
圖片.png

第三步,獲取標(biāo)識(shí)符并保存至鑰匙串


//導(dǎo)入對(duì)應(yīng)頭文件
#import <Security/Security.h>
#import "SSKeychain.h"

// 開始使用保存、讀取
// 獲取用戶手機(jī)號(hào)IDFA廣告標(biāo)識(shí)
+ (NSString *)getDeviceIDFA {
    
    NSError *error = nil;

    //然后,從鑰匙串讀取UUID:
    NSString *IDFA = [SSKeychain passwordForService:@"testUUIDKey"account:@"UUID_IDFA" error:&error];
    
    // 判斷是否保存
    if ([error code] == SSKeychainErrorNotFound) {
        
        NSLog(@"Passwordnot found");
        
        ASIdentifierManager *manager = [ASIdentifierManager sharedManager];
        
        // iOS10 之后最好加一個(gè)判斷 [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]  返回值是BOOL值   如果返回的YES說明沒有 “開啟限制廣告跟蹤”,可以獲取到正確的idfa  如果返回的是NO,說明等待你的就是一串00000000000
        if ([manager isAdvertisingTrackingEnabled]) {
            IDFA = [[manager advertisingIdentifier] UUIDString];
        }
        else {
            IDFA = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
        }
        //保存數(shù)據(jù)
        [SSKeychain setPassword:IDFA forService:@"testUUIDKey"account:@"UUID_IDFA"];
    }
    
    return IDFA;
}

經(jīng)過上面3步,已經(jīng)可以實(shí)現(xiàn)IDFA保存至鑰匙串并獲取使用,如果需要多個(gè)項(xiàng)目應(yīng)用之間共享讀取保存的IDFA請(qǐng)看下面操作步驟!??!

應(yīng)用共享IDFA操作

新建應(yīng)用項(xiàng)目,在新項(xiàng)目中重復(fù)上面第一步、第二步,在新項(xiàng)目設(shè)置好后即可直接操作第三步讀取前項(xiàng)目保存的IDFA,如防止前應(yīng)用沒有保存,在新項(xiàng)目中也可以做保存讀取操作,以供下個(gè)應(yīng)用使用。

注意:在新、舊項(xiàng)目第三步讀取時(shí)的service的key和account的key必須保持一致。
第二步中的keychain groups中一個(gè)“共享標(biāo)識(shí)”也必須保持一致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 總有些人時(shí)刻保持向上的姿態(tài) ,始終未放棄。走出校園,才發(fā)現(xiàn)外面世界里有太多優(yōu)秀的人,還在不斷的拼搏。 飛哥現(xiàn)在是某...
    楊心培閱讀 250評(píng)論 0 2

友情鏈接更多精彩內(nèi)容