iOS读取各种设备信息

已废弃不可获取

  • UDID
    从iOS5以后,已经不允许使用。
  • MAC地址
    从iOS7以后,苹果做了处理,mac地址得到的是一个固定值“02:00:00:00:00:00”,所以也不能用。
可获取
  • UUID
    通用唯一标识码。一个随机串,它保证对在同一时空中的所有机器都是唯一的,即每次产生的都是不一样的值。
  • IDFA
    广告标示符。在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置,所以基本上用来监测推广效果,是戳戳有余了。
    不过即使这是由系统存储的,但是有几种情况下,会重新生成广告标示符。如果用户完全重置系统((设置程序 -> 通用 -> 还原 -> 还原位置与隐私) ,这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符) ,那么广告标示符也会重新生成。
    关于广告标示符的还原,有一点需要注意:如果程序在后台运行,此时用户“还原广告标示符”,然后再回到程序中,此时获取广 告标示符并不会立即获得还原后的标示符。必须要终止程序,然后再重新启动程序,才能获得还原后的广告标示符。
    所以IDFA也不可以作为获取唯一标识的方法,来识别用户
  • IDFV
    Vendor标示符。是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的反转的前两部分进行匹配,如果相同就是同一个Vender,例如对于com.taobao.app1, com.taobao.app2 这两个BundleID来说,就属于同一个Vender,共享同一个IDFV的值。和IDFA不同的是,IDFV的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。
  • 其他一些硬件信息
    CPU型号,CPU核数,CPU频率
    设备总内存
    磁盘总空间
    电池容量、电池电压
    屏幕分辨率
    .......
能用于唯一标识设备的:
  • UUID
    把UUID保存到KeyChain里面,这样App卸载重装或者系统升级,都可以读出来之前的UUID。
  • IDFV
【iOS读取各种设备信息】参考资料:http://www.cocoachina.com/ios/20171024/20890.html

    推荐阅读