iOS7—Day by day—Day9:Device Identification
来源:互联网 发布:程序员培训 编辑:程序博客网 时间:2024/05/17 12:48
这篇文章是天天品尝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
- iOS7—Day by day—Day9:Device Identification
- iOS7—Day by day
- iOS7—Day by day—Day0:UIKit Dynamics
- iOS7—Day by day—Day1:NSURLSession
- iOS7—Day by day—Day2:Asset Catalog
- iOS7—Day by day—Day3:Background Fetch
- iOS7—Day by day—Day4:AVSpeechSynthesizer
- iOS7—Day by day—Day6:Tint Color
- iOS7—Day by day—Day10:Custom UIViewController Transitions
- iOS7—Day by day—Day15:CoreImage Filters
- iOS7—Day by day—Day17:iBeacons
- iOS7—Day by day—Day23:Multipeer Connectivity
- iOS7—Day by day—Day22:Downloadable Fonts
- iOS7—Day by day—Day5:UIDynamics With Collection Views
- iOS7—Day by day—Day7:Taking Snapshots of UIViews
- iOS7—Day by day—Day8:Reading List With SafariServices
- iOS7—Day by day—Day11:UIView Key-frame Animations
- iOS7—Day by day—Day12:Dynamic Type and Font Descriptors
- 166M"巨"作来袭 免商铺流量"双免"轻松hold住
- 关于cvCreateFileCapture()读取视频文件失败的解决记录
- Myeclipse maven创建webapp
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
- linux 下搭建java web环境
- iOS7—Day by day—Day9:Device Identification
- Word Ladder----leetcode
- 总结
- textarea内容不为空的问题
- Java产生随机数
- <script>标签的for和event属性
- 关系操作
- 拦截QT关闭窗口的CloseEvent()解析
- notepad++ xml---如何使用Notepad++格式化XML文件