iOS: 获取不变的UDID

作者: Biharry | 来源:发表于2015-11-24 15:04 被阅读4192次

    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

    相关文章

      网友评论

      • 厚积方能薄发:楼主,你的资源分享链接不能用了,可否重新分享一下
      • 六六左边走:如果不登录iCloud 账号,是不是如果重装系统就无法获得之前保存的uuid
      • 透亮心情:我现在需求只是需要取得uuid,我使用了FCUUID,但是iCloud和keychain sharing我都没有开启.但是会有一个警告:NSUbiquitousKeyValueStore error: com.mysoftware.tapin has no valid com.apple.developer.ubiquity-kvstore-identifier entitlement 这个问题博主怎么解决的?
        niuxinghua:keychain没开启啊
      • 我的发:刷机 越狱都不会变的有吗?
        龙伟17:越狱 会变
      • 小凡凡520:good mark
      • 跑调的安眠曲:升级系统会有影响吗?// 抹掉iPhone的时候才会变,适合做唯一标识
        +(NSString *)uuidForDevice;
        跑调的安眠曲:@稻草人家 谢谢
        Biharry:@62914d1d6ca1 升级不会变

      本文标题:iOS: 获取不变的UDID

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