美文网首页
目前iOS 获取设备号比较好的方案

目前iOS 获取设备号比较好的方案

作者: Kevin777vip | 来源:发表于2018-01-10 15:34 被阅读0次

    关于iOS的设备标识,历史上有多个方法,取不同的ID,有些方法已经被苹果禁止,所以现在开发也不需要去看了,广告标识符可能会取不到(用户可以自己去设备设置中关闭,建议关闭,能少收集一个是一个),主要说下目前我认为最好的解决方案

    首先说一下最简单的方法,很多公司在用这个,但是有缺陷,就是相同开发商的多个应用返回的值是一样的,除非真的有这种需求,否则不建议用

    [[UIDevice currentDevice]identifierForVendor].UUIDString
    

    Apple的注释很清楚

    @property(nullable, nonatomic,readonly,strong) NSUUID      *identifierForVendor NS_AVAILABLE_IOS(6_0);      // a UUID that may be used to uniquely identify the device, same across apps from a single vendor.
    

    所以这个方法一般不会用,那就用到了CFUUIDRef

    + (NSString *)uuidString
    {
        CFUUIDRef uuid_ref = CFUUIDCreate(NULL);
        CFStringRef uuid_string_ref= CFUUIDCreateString(NULL, uuid_ref);
        NSString *uuid = [NSString stringWithString:(__bridge NSString *)uuid_string_ref];
        CFRelease(uuid_ref);
        CFRelease(uuid_string_ref);
        return [uuid lowercaseString];
    }
    

    这样生成的uuid会每次变化,所以需要存储,对于存储的方法,建议存在NSUserDefaults或者数据库中,然后同时存到keychain中,每次从NSUserDefaults读取,取不到再去keychain中查找,都没有才生成新的并存储,这样可以保证卸载了app重新安装后设备号还是不变的,但如果重置系统,那就没有办法了,还有一种方法是上传iCloud,但会有很多限制和不确定,所以没有用。但其实iCloud可以做很多事情,大家可以试试。

    编辑人:kevin 转载请注明,谢谢

    相关文章

      网友评论

          本文标题:目前iOS 获取设备号比较好的方案

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