`
444878909
  • 浏览: 639396 次
文章分类
社区版块
存档分类
最新评论

iOS,不能使用UDID之后

 
阅读更多
如大家所知道的,苹果已经不再支持开发者使用UDID, 所谓UDID就是iPhone,iPad等iOS设备上的物理编号,类似于序列号,程序开发人员可以通过代码“[UIDevicecurrentDevice].uniqueIdentifier”获得一个设备的UDID,用于跟踪纪录某个设备的使用。

从iOS 5开始,“uniqueIdentifier”属性被列为“Deprecated”,如果程序开发人员在程序中使用“uniqueIdentifier”, xCode编译该程序时会报警,不过程序仍然可以运行。
对于需要在App Store上架的应用,从 今年 5月 1号开始,苹果会对使用“uniqueIdentifier”的应用作下架处理。
对于企业 in-house 应用,使用“uniqueIdentifier”的程序仍可以在 iOS 5, iOS 6设备上运行,苹果不对这些应用进行限制。

对于需要使用UDID去识别设备的应用,苹果在官方文档中建议开发者使用“identifierForVendor”或者是“advertisingIdentifier”代替UDID。
不过,我们所面对的问题是一台设备上的 identifierForVendor和advertisingIdentifier会不会变化,是不是像UDID一样可以用于追踪设备?
实事上,在特定情况下,一台设备上的identifierForVendor和advertisingIdentifier是会变化的。
即使在同一台设备上,使用不同开发者帐户开发的应用获得的identifierForVendor是不同的。
此外,即使在同一台设备上,使用同一个开发者帐户开发的程序,如果设备用户将该开发者帐户开发的所有应用删除,然后再进行安装,之后获得的identifierForVendor和删除应用前获得的identifierForVendor也是不同的。

对于advertisingIdentifier来讲,如果用户重置了设备,advertisingIdentifier会发生变化,此外,用户也可以在“设置”里对advertisingIdentifier进行手动重置。

所以说,identifierForVendor和advertisingIdentifier在部分业务场景下可以代替UDID,不过在使用过程中我们需要留意这些id在什么情况下会发生变化。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics