福利:
- 封装了一个操作设备唯一标识的类在GitHub, 可直接使用:https://github.com/Hext123/HDeviceIdentifier
思路:
- 保存到
Keychain
(钥匙串) 中的数据不会随应用卸载而删除, 除非恢复出厂设置. 所以可以生成一串字符保存到钥匙串中, 作为设备唯一标识.
实现:
生成一串唯一的字符作为设备唯一标识. 要在一个大程度上唯一的只有 UUID 了. iOS中提供了相关方法可以获取
UUID
:[[NSUUID UUID] UUIDString]
:[NSUUID UUID]
方法每次调用都会生成一个不同的UUID
.[[[UIDevice currentDevice] identifierForVendor] UUIDString]
:identifierForVendor
可以获取这个应用在这台手机上的唯一标识, 但是卸载重装应用之后会变化.
把
UUID
保存到Keychain
中: 直接操作Keychain
的代码是非常繁琐容易出错的, 所以使用一个已经封装好的操作类 SFHFKeychainUtils 来操作Keychain
.