UDID
项目 | 说明 |
---|---|
全称 | Unique Device Identifier,设备唯一标识符。 |
格式 | 40个字符长度的字符串(字母+数字) |
特点 | 每台 iOS设备唯一的、仅与设备相关的,这点与设备序列号相似 |
作用 | 区分 iOS 设备(包括 iPhone、iPad 等),将其他数据与设备关联起来。 |
场景 | 设备注册、埋点统计等。 |
获取方法
1. 通过 iTunes/Finder 查看
2. 通过 Xcode 查看
Window->Devices and Simulators->identifier
3. 通过代码获取
iOS5之后,苹果出于隐私考虑,禁用了获取 UDID 的 API,并且禁止上架试图获取 UDID 的应用,可以用替代。
[UIDevice currentDevice].identifierForVendor.UUIDString
UUID
项目 | 说明 |
---|---|
全称 | Universally Unique Identifier,通用唯一标识符 |
格式 | 通过小横线连接起来的32位的十六进制序列。例如0DEF9507-EB5A-471A-8BC7-638A0B0A327D |
特点 | 只在某一时空是唯一的,当每次卸载应用之后获取到的UUID都是不一样的 |
作用 | 将这个UUID保存在keychain里面,以此作为唯一标识符,区分 iOS 设备(包括 iPhone、iPad 等),将其他数据与设备关联起来 |
场景 | 设备注册、埋点统计等。 |
获取方式
通过代码获取
NSString *uuid = [NSUUID UUID].UUIDString;
用 Keychain 保存 UUID
什么是 Keychain?
Keychain是苹果在OS X/iOS系统中提供的一种安全存储敏感信息的工具。所谓敏感信息,即用户ID、password、certificate等。
Keychain里面存储的数据是item,这些item是以key-value的形式存储的,可以理解为Dictonary。利用Keychain存储这些信息可以提高用户体验,免除用户重复输入用户名和密码等繁琐的操作。
同时,Keychain Service安全机制能够保障存储的信息不会被窃取,所以可以用来存储UUID等。
为什么要用 Keychain?
- Keychain的数据并非是存放在应用程序的沙盒中,所以即使当用户删除app,存储的资料依然在keychain中。用户再一次安装该应用程序的时候又可以从keychain中获取数据。
- Keychain的数据有经过加密,更安全。
- Keychain提供了一个公共区"keychain access group",可以通过这个group实现应用程序之间的数据共享。