美文网首页iOS开发资源iOS源码探究相关iOS开发精华专题
iOS开发给设备添加唯一标识/解决苹果禁用获取唯一的UUID和

iOS开发给设备添加唯一标识/解决苹果禁用获取唯一的UUID和

作者: Courage_SC | 来源:发表于2016-04-14 20:17 被阅读1224次

    概述

    已禁用[UIDevice uniqueIdentifier]获取设备唯一标识,还有一种生成iOS设备唯一标示符的方法是使用iOS设备的Media Access Control(MAC)地址。一个MAC地址是一个唯一的号码,它是物理网络层级方面分配给网络适配器的。这个地址苹果还有其他的名字,比如说是硬件地址(Hardware Address)或是Wifi地址,都是指同样的东西。
      有很多工程和框架都使用这个方法来生成唯一的设备ID。比如说ODIN。然而,苹果并不希望有人通过MAC地址来分辨用户,所以如果你在iOS7系统上查询MAC地址,它现在只会返回02:00:00:00:00:00。
    现在苹果明确的表明你应该使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]来作为你框架和应用的唯一标示符。坦白的来说,应对这些变化也不是那么的难,见以下代码片段:

    NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString]; 
    

    identifierForVendor对供应商来说是唯一的一个值,也就是说,由同一个公司发行的的app在相同的设备上运行的时候都会有这个相同的标识符。然而,如果用户删除了这个供应商的app然后再重新安装的话,这个标识符就会不一致。

    解决方案

    iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于 NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在 重装App后,keychain里的数据还能使用。从ios 3.0开始,跨程序分享keychain变得可行。即使将APP删除或系统升级,也不会改变,除非还原系统。

    SFHFKeychainUtils是另一个封装了KeyChain简单操作的第三方类库,SFHFKeychainUtils只提供了获取、保存和删除三个方法:

    SFHFKeychainUtils 提供了在 iOS keychain中安全的存储密码的工具

    下载地址https://github.com/ldandersen/scifihifi-iphone/tree/master/security

    1、引入Security.frameWork框架。

    2、引入头文件:SFHKeychainUtils.h.

    3、存密码:

    [SFHFKeychainUtils storeUsername:@"name" andPassword:@"aa"forServiceName:SERVICE_NAME updateExisting:1 error:nil];
    

    4、删除密码:

    [SFHFKeychainUtils deleteItemForUsername:@"name" andServiceName:SERVICE_NAME error:nil];
    

    5、取密码:

    NSString *passWord =  [SFHFKeychainUtils getPasswordForUsername:@"name"andServiceName:SERVICE_NAME error:nil];
    

    如果还有不懂的可以问我

    相关文章

      网友评论

      • Courage_SC:放登陆的位置,可以根据你的需求
      • 来敲代码:能奉献一个app吗 源码里面有这方面的
        来敲代码:@Courage_SC 主要是我工程没用过keychina
        Courage_SC:@来敲代码 没那个必要吧。就几行代码而已
      • ali_hilo:你好,请问一下。这段获取UUID,和keychain保存 UUID的代码,应该放在哪个位置呢??谢谢贡献啊
        Courage_SC:@面包大狸 放登陆的位置,可以根据你的需求

      本文标题: iOS开发给设备添加唯一标识/解决苹果禁用获取唯一的UUID和

      本文链接:https://www.haomeiwen.com/subject/jubglttx.html