解决因删除app唯一标识设备号改变情况(存储到钥匙串中)

+(NSString*)GetIOSUUID{

    

    NSError *error;

    

    NSString * string = [SFHFKeychainUtils getPasswordForUsername:@"UUID" andServiceName: @"com.china.TestKeyChain" error:&error];

    

    if(error || !string){

        MyLog(@"❌从Keychain里获取密码出错:%@", error);

        

        [self saveUUID];//保存

        

        string = [SFHFKeychainUtils getPasswordForUsername:@"UUID" andServiceName: @"com.china.TestKeyChain" error:&error];

        

    }else{

        MyLog(@"✅从Keychain里获取密码成功!密码为%@",string);

    }

    

    return string;

}

 

 

+(void)saveUUID{

 

    CFUUIDRef puuid = CFUUIDCreate( nil );

    

    CFStringRef uuidString = CFUUIDCreateString( nil, puuid );

    

    NSString * result = (NSString *)CFBridgingRelease(CFStringCreateCopy( NULL, uuidString));

    

    CFRelease(puuid);

    

    CFRelease(uuidString);

    

    NSError *error;

    

    BOOL saved = [SFHFKeychainUtils storeUsername:@"UUID" andPassword:result

                  

                                   forServiceName:@"com.china.TestKeyChain" updateExisting:YES error:&error];

    

    if (!saved) {

        

        NSLog(@"❌Keychain保存密码时出错:%@", error);

        

    }else{

        

        NSLog(@"✅Keychain保存密码成功!%@",result);

    }

}

 

posted on 2017-07-05 13:58  小虫笔墨  阅读(304)  评论(0编辑  收藏  举报