关于 iOS唯一标示

 UDID :

  • IOS6 以前 可以获取UDID  ((Unique Device Identifier)  在ios2 – ios5 之间是可以实现 唯一标识 设备的,
  • IOS6 之后 禁止获取。涉及用户隐私
  • 如果越狱 UDID 不是唯一的。用处不大。

UUID:

  • (Universally Unique Identifier)通用唯一标识码
  • 同以设备 的不同应用的 UDID 互斥。,即能在改设备上标识应用.但是并没有明确指出能标识出装有同一应用的不同设备
  • UUID每次生成的值都不一样,需要开发者自行保存UUID. 

 Mac 地址:

  • Ios7 被禁止使用。 同时 禁止 剪贴板通讯
  •  

 

IOS7 上的UDID 方案:

OpenUDID 开源方案 (已弃用)

  • 独立于apple 的UDID 开源方案,但IOS7对剪贴板的限制,多个应用无法共享。不太准确
  •  
  • 同一设备上如果有一个使用OpenUDID 的应用, 则其它使用的它获取到的 都是同一个, 当 全部删除 使用它的应用 ,重新安装则会重新生产新的标示
  • 原理: (有使用它的应用存在)同以设备上,第一次生成后被存储在 剪贴板,下次取出
  • 全部删除会 重新生成

 

KeyChain  钥匙窜

  • ios系统只有一个KeyChain,每个程序都可以往KeyChain中记录数据,而且只能读取到自己程序记录在KeyChain中的数据。iOS中Security.framework框架提供了四个主要的方法来操作KeyChain
  • 目前 IOS7可行的 获取设备UDID 的方案
  •  方案  UUID + keyChain
  • keyChain 由系统控制,可以设置 属性 不随appid 同步到 另外的设备。
  • keyChain 被清空 只能是 系统被还原。

 

 

idfa

  • #import <AdSupport/AdSupport.h> 
  •   NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

 

  • 全名:advertisingIdentifier
  • 广告id     , 可以在设置中被用户禁止。

 

idfv

  • 全名:identifierForVendor
  • NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
  • 是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值
  • 注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同。

 

DeviceToken

  • 推送 标识。 可能获取不到

 

 

 

 

http://milker90.blog.163.com/blog/static/229430038201441643813286/

你可能感兴趣的:(ios)