天天品尝iOS7甜点 :: Day 9 :: Device Identification

这篇文章是天天品尝iOS7甜点系列的一部分,你可以查看完整的系列目录:天天品尝iOS7甜点


今天我们的文章将会比较的简短,但是对于那些想通过设备唯一标识ID跟踪用户的开发者来说确实十分重要的.有很多的理由你需要获得用户的设备唯一标识ID,然后这个涉及到用户的个人隐私,用户并没有授权你获得这个ID。

本章的实例程序能够在github上面进行访问,访问地址:github.com/ShinobiControls/iOS7-day-by-day

设备的UDID在iOS5中已经标记为过时了,在iOS7中已经被移除了,iOS6中介绍替代方法,下面就是一个我们提供的仅有的方法:

Vendor Identification

最接近替代uniqueIdentifier的是另外一个方法,在UIDevice中的identifierForVendor,它返回NSUUID.在相同的设备里面相同供应商的app共享一个UUID.不同的供应商在同一个设备上面将会返回不同的identifierForVendor值,就像相同供应商在不同设备上面一样。

对于开发者来说,这个值提供了和原来相似的功能,而且没有用户隐私的问题。

但是美中不足的是如果用卸载了供应商下面所有的app,这个id就会被销毁,重新安装之后就会生成一个新的供应商ID。

Advertising Identification

如果你需要唯一标识ID来实现app内广告。就会有另外的一个替代方法。ADSupprt模块包含了ASIdentifierManager类,它有一个advertisingIdentifier方法。它返回一个NSUUID可以用来达到追踪广告的目的。还有一个方法avertisingTrackingEnable.它返回一个BOOL类型的数据用来指定是否用户允许进行广告追踪。如果返回值为NO,然后就有一小部分事情,app可用使用这个ID,没有涉及到跟踪用户。

广告标识是独特的在整个设备——所以,如果启用了跟踪广告可以为特定的用户定制的。往往一个应用程序开发人员不需要与这个类交互,而是将该广告服务框架在幕后使用ASIdentifierManager类。

Network Identification

当 uniqueIdentifier 被弃用了,通过使用MAC地址变得很流行。一个MAC地址是恒定不变的且唯一的,可以用来跟踪用户。但是在iOS7中Apple对这个也添加了限制,所以实际返回的MAC地址为: 02:00:00:00:00:00. 关闭这个“漏洞”,将会推动开发者运用Apple提供的优先方法来进行获得设备标识.

Conclusion

Apple压缩了获得设备标识的替代方案,所以要开始适配新的方法。这种做法对终端用户的隐私起到了很好的保护。是很值得做的。

本文翻译自:iOS7 Day-by-Day :: Day 9 :: Device Identification

文章目录
  1. 1. Vendor Identification
  2. 2. Advertising Identification
  3. 3. Network Identification
  4. 4. Conclusion
,