参考文章

一、CFUUID (Deprecated)

二、UDID (Deprecated)

三、NSUUID (ios6.0 and later)

NSString *uuid = [[NSUUID UUID] UUIDString];

  1) 每次调用都会返回不同的值。

四、Advertiser Identifier (ios6.0 and later)

NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

  1) 需要 AdSupport.framework

  2) 除了以下情况会重新产生新的 id外,一般情况下是固定不变的。

    a> reset the system (Settings.app -> General -> Reset -> Reset All Content and Settings)

    b> 如果用户在 settings 选择了 "Limit Ad Tracking" on,会限制程序访问 Advertiser Identifier。

五、Identifier for vendor (ios6.0 and later)

NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

  1) 在同一个设备上,同 vendor 的 app 的此 id 是一样的。

  2) vendor is defined by the first two parts of the reverse DNS formatted CFBundleIdentifier.

    example

      com.doubleencore.app1 and com.doubleencore.app2    same

      com.massivelyoverrated or even net.doubleencore   different

  3) 如果用户把设备上 同一个 vendor 的 apps 都删除掉,下一次安装后此 id 会重新产生。

六、第三方的 OpenUDID(ios5.0 and later,不建议使用)

NSString *openUDID = [OpenUDID value];

  七、把 device id 存放到 system keychain,只有当设备 system restore 才会重置,而且keychain里保存的信息不会因App被删除而丢失。

    (apple demo “GenericKeychain”)

    1) 下载 apple 提供的 KeychainItemWrapper (如果使用的是 arc ,则需要标示 -fno-objc-arc)

    2)需要的框架:Security.framework

    3)使用

KeychainItemWrapper* keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:bundleID
accessGroup:nil];
// 读取
NSString* uuidStr = [keychainItem objectForKey: (id)kSecValueData]; // 写入
[keychainItem setObject:uuidStr forKey:(__bridge id)kSecAttrService];
[keychainItem setObject:uuidStr forKey:(id)kSecValueData];

  

最新文章

  1. 1476. Lunar Code
  2. js小效果-轮播图
  3. [转]ubuntu安装光盘修复grub-rescue引导失败问题
  4. org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.
  5. 删除织梦所有待审核稿件sql语句
  6. MFC中获取指针的方法
  7. 1021: [SHOI2008]Debt 循环的债务 - BZOJ
  8. 续上文----线性表之单链表(C实现)
  9. 微信公众号报错 config:invalid signature
  10. 通配符的匹配很全面, 但无法找到元素 'context:property-placeholder' 的声明。
  11. 01-css的引入方式和常用选择器
  12. NGUI和UGUI图片字 艺术字(Bitmap图片转文字)制作方法
  13. DotNetty 学习
  14. ftk学习记(滑动条篇)
  15. MapReduce: map读取文件的过程
  16. 20155338 2016-2017-2《Java程序设计》实验四Android程序开发实验报告
  17. 桔子桑Blog(小程序)V 0.4
  18. 数独:dfs+剪枝+位运算+排除冗余+优化搜索顺序(未完)
  19. linux rpm 卸载,简单说明
  20. python中矢量化字符串方法

热门文章

  1. AsyncTask下载网络图片
  2. Xamarin提示Build-tools版本过老
  3. Quartz.Net 配置模板范例
  4. 【转】CSS清除浮动_清除float浮动
  5. 【SPOJ】10628. Count on a tree(lca+主席树+dfs序)
  6. sql中的视图
  7. Ubuntu 12.04 下安装 VirtualBox 及虚拟机winxp的安装
  8. JS模态窗口返回值兼容问题解决方案
  9. CentoS 下安装gitlab
  10. http页面转发和重定向的区别