Git Product home page Git Product logo

-sskeychain's Introduction

###SSKeychain

SSKeychain获取不变的UUID可唯一标示设备的使用心得

####SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码、账户进行访问,包括读取、删除和设置。SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes。 ####1.准备篇 ####SSKeychain下载地址:https://github.com/Mingriweiji-github/sskeychain-master

在工程中加入SSKeyChain

  • 在工程中加入Security.framework框架。

  • 把SSKeychain.h和SSKeychain.m 以及SSKeychainQuery.h SSKeychainQuery.m 加到我们的项目文件夹。

通过以下类方法来使用SSKeyChain(请查看SSKeyChain.h):

  • (NSArray *)allAccounts;

  • (NSArray *)accountsForService:(NSString *)serviceName;

  • (NSString *)passwordForService:(NSString *)serviceNameaccount:(NSString *)account;

  • (BOOL)deletePasswordForService:(NSString *)serviceNameaccount:(NSString *)account;

  • (BOOL)setPassword:(NSString )password forService:(NSString)serviceName account:(NSString *)account;

###2.使用篇------获取不变的UUID可唯一标示设备,即使删除应用UUID仍然不变因此可替代原来的UDID

  • 在工程中加入Security.framework框架。

  • 把SSKeychain.h和SSKeychain.m 以及SSKeychainQuery.h SSKeychainQuery.m 加到我们的项目文件夹。

  • 报错位置 #import SSKeychain/SSKeychainQuery.h

  • 解决方法 注释//#import SSKeychain/SSKeychainQuery.h 直接导入#import SSKeychainQuery.h

  • 具体方法如下 在需要使用的类 例如 AppDelegate里先写两个宏定义

  • define keychain_service @"uuid"

  • define keychain_account @"appuuid"

  • @implementation AppDelegate

  • pragma mark SSKeychain 获取不变的UUID

  • -(NSString *)getUUID { NSString *strUUID = [SSKeychain passwordForService:keychain_service account:keychain_account]; NSError *error=nil;

    if (strUUID==nil||[strUUID isEqualToString:@"" ]||strUUID.length==0) { CFUUIDRef uuid = CFUUIDCreate(NULL);

      assert(uuid != NULL);
    
      CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid);
    
      BOOL  succcess= [SSKeychain setPassword:[NSString stringWithFormat:@"%@",uuidStr] forService:keychain_service account:keychain_account  error:&error];
      if(succcess)
      {
          NSLog(@"keychain success 获取的UUID is %@",strUUID);
      }
    

    }

// BOOL delete = [SSKeychain deletePasswordForService:keychain_service account:keychain_account]; // if (delete) { // // NSLog(@"delete is success"); // } NSLog(@"SSKeychain 获取不变的UUID is %@",strUUID);

return strUUID;

}

-sskeychain's People

Stargazers

 avatar wayone avatar yuanxinliang avatar pengpeng avatar yuanxiao avatar xubill avatar  avatar 煎饼果子 avatar wsliang avatar Johny Xu avatar SunWater avatar  avatar miler avatar Yojoy avatar Fallrainy avatar Michael.Yang avatar

Watchers

James Cloos avatar Michael.Yang avatar Focus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.