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
推荐阅读
- JS中的各种宽高度定义及其应用
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 中国MES系统软件随工业化成长
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 2019-08-29|2019-08-29 iOS13适配那点事
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- iOS面试题--基础
- 同学聚会少了友情多了比拼,拼孩子、拼工作、比职位引发各种落差|同学聚会少了友情多了比拼,拼孩子、拼工作、比职位引发各种落差 变味的同学聚会
- ExcelPackage读取写入