设备UDID的替代品 - 准备自己

Sta*_*ash 11 app-store udid ios

可能重复:
UIDevice uniqueIdentifier已弃用 - 现在该怎么办?

我知道关于这一点有很多问题,但我认为因为Apple正在提前并主动拒绝使用UDID的应用程序(http://pulse.me/s/7mzKE),我们开发人员需要采取积极的态度并大量讨论此事.

所以问题是 - 除了访问它的UDID属性之外,什么是唯一的设备识别的良好,稳定和正确的替代方案?

lxt*_*lxt 15

这取决于您的需求......如果您正在寻找应用程序使用的简单设备标识符,那么弃用uniqueIdentifier方法的文档几乎可以提供您的答案:

不要使用uniqueIdentifier属性.要创建特定于应用程序的唯一标识符,可以调用该CFUUIDCreate函数来创建UUID,并使用NSUserDefaults该类将其写入默认数据库.

CFUUIDCreate将返回您的应用程序独有的唯一手机标识符.您需要将其存储,NSUserDefaults因为如果您进行后续调用,它将会更改.对于大多数用途来说,这就足够了,并不是Apple没有提供足够的警告来改变这种变化(iOS 5已经出现了六个多月,开发人员的文档更长).

其他的情况是,你需要在应用程序(即手机广告网络)共享您的设备标识符.这是一个比较复杂的问题,有一些替代方案(也不能保证他们会在未来保持周围:苹果的弃用UDID API主要原因是大概是为了阻止跨应用程序的用户跟踪).

  • 当用户删除并重新安装您的应用时,CFUUID会有所不同. (4认同)
  • 您始终可以将其保存到钥匙串中,而不是用户默认值,在这种情况下,普通删除/重新安装不会影响它.合理删除最终用户的钥匙串条目的唯一方法是完全擦除设备. (2认同)
  • 但是,当备份恢复时,NSUserDefaults不会恢复到新设备吗?在这种情况下,它不是唯一的设备标识符. (2认同)
  • 推送通知不使用UDID - 它们使用设备在用户选择通知时生成的设备令牌.他们可以并且确实因应用而异. (2认同)

Chr*_*ern 9

我个人最喜欢的是OpenUDID.

你可以在这里抓住GitHub .

我总结了我的想法,并把它的简要说明这里.