• 获取不变的UDID-b


    iOS唯一标识的历史历程

    iOS 6.0

    在iOS6.0以前,是使用uniqueIdentifier来获取手机的唯一标识,后来苹果感觉这样会泄露用户隐藏,就封掉了这个方法;

    iOS 6.0系统新增了两个用于替换uniqueIdentifier的接口

    • identifierForVendor
    • advertisingIdentifier

    但是 identifierForVendor 会在卸载后再重装,就会改变,所以就不能当做手机的唯一标识使用。
    后来,未来解决问题,程序员们想到了使用WiFi的mac地址来作为手机的唯一标识。很欢乐的使用着·······

    但是············

    iOS 7.0

    iOS 7中苹果再一次无情的封杀mac地址,使用之前的方法获取到的mac地址全部都变成了02:00:00:00:00:00

    聪明的程序员们,想到了用广告标示符作为手机唯一的标识。但是·······
    只要用户重置了广告标示符以后,还是会获得一个新的广告标识。这样一来,广告标识付也不可以用了。。。。

    这下该如何是好呢?

    接下来就是介绍解决方法的时候了

    使用KeyChain来保存获取到的唯一标示符呢,这样以后即使APP删了再装回来,也可以从KeyChain中读取回来,当然也不会害怕重置了广告标示符

    FCUUID

    在github搜一下UDID,发现这个东东的星星最多。看来一下readme,添加到自己的项目中测试,可用

    设备标识在 完全抹掉iPhone的时候,仍然会变。学长只能帮到这了····

    使用方法

    1、点击下载所需文件
    因为FCUUID需要依靠该作者的另外一个文件。所以这里有就把所有的文件放在了一起,供大家下载使用。
    作者 githun地址 https://github.com/fabiocaccamo/FCUUID

    2、在项目中添加 Security.framework

    3、导入头文件

     #import "FCUUID.h"

    接下来就可以欢快的使用了

    FCUUID提供的类方法

    // 每次运行应用都会变
    +(NSString *)uuid;
    
    //changes each time (no persistent), but allows to keep in memory more temporary uuids
    +(NSString *)uuidForKey:(id<NSCopying>)key;
    
    // 每次运行应用都会变
    +(NSString *)uuidForSession;
    
    // 重新安装的时候会变
    +(NSString *)uuidForInstallation;
    
    // 卸载后重装会变
    +(NSString *)uuidForVendor;
    
    // 抹掉iPhone的时候才会变,适合做唯一标识
    +(NSString *)uuidForDevice;

    个人测试数据


    Paste_Image.png



    文/Biharry(简书作者)
    原文链接:http://www.jianshu.com/p/c7adc4e61e7b
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    git命令
    熟悉sql常用语句
    面试:django
    python面试基本题(你需要的)
    django的几种方法进行序列化(视图)
    阿布云代理ip
    了解Git操作
    django前后端交互
    面向对象
    mysql数据库基本操作
  • 原文地址:https://www.cnblogs.com/isItOk/p/5875147.html
Copyright © 2020-2023  润新知