• iOS不同IDS说明


    1.Vendor标识符
     identifierForVendor
    一个英文字符串,对于相同的产品商(这里指com.zhang.*,也就是前缀一样),其唯一的标识设备。
    * 这个值对于相同的产品商在相同的设备上是相同的。
    * 这个值在不同的产品商在相同的设备上是不同的。
    * 在不同的设备上是不同的(不管产品商是否一致)。
    一般来说,产品商是根据AppStore上的data确定的.如果app不是从AppStore下载安装的(例如企业版app和还在development的app),那么这个标识符是根据app的bundle id计算出来的,是bundle id的反转DNS格式。
    在iOS6上,前两个字符串用来(com.zhang.demo中的com.zhang.)生成vendor id,如果bundle id只有一个组成(demo),那么就用整个bundle id来生成。
    在iOS7,除了最后一个组件,其他的都用来生成vendor id,如果bundle id只有一个组成(流入demo),那么就用整个bundle id来生成。
    例如:
    如果它的值是空的,等待并且稍后重新获取该值,这种情况是可能发生的,例如用户重启了手机,而且在用户解锁之前。
    当你使用广告服务的时候,使用advertisingIdentifier,而不是使用该属性。
    获取方式:
    NSLog(@"%@",[[[UIDevice currentDevice] identifierForVendor] UUIDString]);
    2.IDFA
    advertisingIdentifier
    一个英文字符串,对于每一个设备是唯一的,仅仅用于广告服务。不像identifierForVendor,如果相同的公司出品的产品的com.shuquwangluo.相同,identifierFOrVendor是返回所有相同给的值。这个值是可能改变的,例如用户抹去设备,因此开发者不能去缓存它。
    注意:在iOS10和以后,当用户限制广告踪迹(在设置—》隐私—》广告—》限制广告踪迹)advertisingIdentifier会返回所有的0。
    如果它的值是空的,等待并且稍后重新获取该值,这种情况是可能发生的,例如用户重启了手机,而且在用户解锁之前。
    测试:
    当我没有限制广告踪迹之前: 539477AE-36AE-4E33-B22B-B9BF30BB2D07
    当我限制广告踪迹后: 00000000-0000-0000-0000-000000000000
    获取方式:
    NSLog(@"%@",[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]);
    3.CFUUID
    从iOS2.0开始就已经出现了CFUUID,它是CoreFoundation的一部分,因此属于C语言风格。CFUUIDCreate方法用来创建CFUUIDRef,并且可以获取一个响应的字符串。
    获取方式:
        CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault);
        NSString *cfuuidStr = (NSString *)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid));
        NSLog(@"%@",cfuuidStr);
    这个CFUUID值系统并没有存储,每次调用CFUUIDCreate,系统都会返回一个新的唯一标识符。如果你希望存储这个值,需要用NSUserDefault或者其他存储方式进行存储。
    例如: 2A2F49D3-6473-4558-9035-26E14F53691D
    4.NSUUID
    创建和返回一个UUID,该UUID是RFC4122版本的随机字节。获取方式:
    [[NSUUIDUUID] UUIDString]
    和CFUUID一样,这个值系统也不会存储,每次调用的时候都会获取一个新的唯一标识符。如果要存的话需要自己操作。
    5.UDID
    UDID在iOS5以及以后就被启用了。在SDK里面没有找到相关的介绍,这里就不在介绍了。
     
    下面是用Console输出的结果:
     
    2016-09-27 09:32:13.540549 IDADemo[3837:1410105] 1、vender:2F527F67-6800-48F2-B3CF-42697B6BDB3F
    2016-09-27 09:32:13.540596 IDADemo[3837:1410105] 2、NSUUID:A8C331F4-6ADD-4025-BF7C-0E83275BC1B1
    2016-09-27 09:32:13.540646 IDADemo[3837:1410105] 3、CFUUID:324FF6C1-8962-492D-8215-7F2763632EDA
    2016-09-27 09:32:13.541177 IDADemo[3837:1410105] 4、idfa:539477AE-36AE-4E33-B22B-B9BF30BB2D07
    2016-09-27 09:32:13.541203 IDADemo[3837:1410105] 5、UDID:已经弃用,SDK里面没有找到相关介绍
     
    总结
    1.UUIDs(Universally Unique Identifieers)也被叫做GUIDs(Globally Unique Identifiers)或者IIDs(Interface Identifiers),它是一个128为字节的值。标准的UUIDs是由ASCII代表的,例如:68753A44-4D6F-1226-9C60-0050E4C00067  。
    2.以上的各种ids,除了CFUUID不是NSUUID类之外,其他的几个都是NSUUID类型。
  • 相关阅读:
    质子喜欢的和他推荐的
    Linux
    Linux
    Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序
    单点登录(SSO)的设计
    .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧
    .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序
    .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
    .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
    .NET Core快速入门教程 1、开篇:说说.NET Core的那些事儿
  • 原文地址:https://www.cnblogs.com/zhanggui/p/5911672.html
Copyright © 2020-2023  润新知