iOS读取各种设备信息
- 2020 年 3 月 12 日
- 筆記
已废弃不可获取
- 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
参考资料:http://www.cocoachina.com/ios/20171024/20890.html