现今来比较下,不一样状况下两种标识符的变化状况。如下试验,每种标识符均分为存于Keychain
和未存于Keychain
的两种状况作比较。git
广告标识符(IDFA-identifierForIdentifier),是AdSupport.framework
里面的。能够经过ASIdentifierManager
进行得到。github
// 广告标识符 NSString *idFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
OpenUDID
是开源的。Github地址。经过其中的方法能够获取OpenUDID
。ide
// OpenUDID NSString *openUDID = [OpenUDID value];
比较结果以下表。code
状况 | IDFA (广告标识符) |
存于Keychain 的IDFA |
OpenUDID |
存于Keychain 的OpenUDID |
---|---|---|---|---|
删除应用 | 不会改变 | 不会改变,也不会被删除 | 不会改变 | 不会改变,也不会被删除 |
手机还原全部设置 | 不会改变 | 不会改变,也不会被删除 | 不会改变 | 不会改变,也不会被删除 |
手机抹掉全部数据 | 改变 | 被删除 | 改变 | 被删除 |
还原广告标识符 | 改变 | 原存于Keychain 的数据没变化,除非从新写入 |
不会改变 | 不会改变,也不会被删除 |
同一设备,不一样开发者的应用 | 不会改变 | 不会改变,也不会被删除 | 改变 | 若是没有从新写入keychain ,则为NULL |
有空再更新后续内容,先抛个结论开发