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

第一步,引入相關文件

1、添加資源庫

secruity.framework

圖片.png

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

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

圖片.png

第二步,開啟鑰匙串共享

圖片.png

在keychain groups中添加一個共享標識,例如:GFJD892DG9.GrassInfoAppFamily
其中“GFJD892DG9”為開發team ID,

查找team ID 看下圖 :

圖片.png
圖片.png

第三步,獲取標識符并保存至鑰匙串


//導入對應頭文件
#import <Security/Security.h>
#import "SSKeychain.h"

// 開始使用保存、讀取
// 獲取用戶手機號IDFA廣告標識
+ (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 之后最好加一個判斷 [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]  返回值是BOOL值   如果返回的YES說明沒有 “開啟限制廣告跟蹤”,可以獲取到正確的idfa  如果返回的是NO,說明等待你的就是一串00000000000
        if ([manager isAdvertisingTrackingEnabled]) {
            IDFA = [[manager advertisingIdentifier] UUIDString];
        }
        else {
            IDFA = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
        }
        //保存數據
        [SSKeychain setPassword:IDFA forService:@"testUUIDKey"account:@"UUID_IDFA"];
    }
    
    return IDFA;
}

經過上面3步,已經可以實現IDFA保存至鑰匙串并獲取使用,如果需要多個項目應用之間共享讀取保存的IDFA請看下面操作步驟!!!

應用共享IDFA操作

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

注意:在新、舊項目第三步讀取時的service的key和account的key必須保持一致。
第二步中的keychain groups中一個“共享標識”也必須保持一致。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 總有些人時刻保持向上的姿態 ,始終未放棄。走出校園,才發現外面世界里有太多優秀的人,還在不斷的拼搏。 飛哥現在是某...
    楊心培閱讀 217評論 0 2