IOS应用开发中的设备标识
来源:互联网 发布:软件开发标准规范 编辑:程序博客网 时间:2024/06/01 10:06
对于iOS应用开发者来说,苹果所提供的官方后台系统实际上就是iTunes Connect了。通过iTunes Connect我们创建应用记录,提交应用给苹果审核,发布应用,通过iTunes Connect我们可以配置银行卡收钱( 这个很重要:) ),我们可以看到应用的下载量和收据数据报表。
但总体来说iTunes Connect提供的功能还比较有限,而且基本不能定制(除非你能说服苹果)。
对于应用发布后的跟踪和数据收集,很多时候是iTunes Connect之外的事情,甚至有些开发者对于闪退日志收集等也抛弃了iTunes Connect的crash report。那么一个识别具体设备的标志,或者说能够区分不同设备的方法就显得很重要。(1)udid
在iOS6.1及之前,我们可以再UIKit.framework的UIDevice类中看到一个属性,那就是uniqueIdentifier,也就是我们通常所提到的UDID。
但这个属性的声明后面,有NS_DEPRECATED_IOS(2_0, 5_0),意思就是5.0开始就是deprecated的了,是过时的,不建议再继续使用。
到了iOS SDK的7.0版本,在UIDevice类中,就再也找不到这个uniqueIdentifier属性了。而且苹果方面明确表示在2013年5月份之后不再对此支持。(2)identifierForVendor (IDFV)
这是苹果安抚大家的一个UDID的替代品,也是UIDevice类的属性。
按照苹果的文档说明,这个IDFV在同一设备上的所有同Vendor应用得到的ID是相同的,而不同的设备就有不同的IDFV。当这个设备上,同Vendor的所有应用都被卸载掉之后,不能保证同一设备再次安装这个Vendor的应用时,得到同样的ID。
简单来说,如果一个设备上只装了你一个应用,卸载掉再装ID也许就不同了。这样,对于唯一设备的定义就和原来UDID的很不同。这点并不令广大开发者感到满意。(3)MAC地址
如上所述,identifierForVendor不是很令大家满意,于是各种民间方法就出现了。一个方案就是用MAC地址。
学过计算机网络课程的同学们应该了解,要先完成底层网络通信实现MAC地址是必须有的,而这个在网卡制造时要保证全球唯一的,一个设备通常一个网卡就够用了,所以这个在一定程度上可以作为设备标识。
于是乎,拿出了各种底层库,做各种计算,拿到一个MAC地址字符串。
(4) advertisingIdentifier (IDFA)
苹果为了完善自己的生态圈,在2010年前后推出了iAd广告网络。那么这个advertisingIdentifier和这个iAd的关系就不言自喻了。如果不了解广告也没关系,简单来讲,现在的互联网广告精准投放需要了解用户数据,基于这些信息是的广告更有效率,唯一标识就很重要,就用到了IDFA。
advertisingIdentifier在AdSupport.framework的ASIdentifierManager类中,是其中两个属性中的一个。
可以说,用这个IDFA标识设备应该还是很精准的(不然iAd就彻底不用玩了),很多开发者还在使用。
0 0
- iOS应用开发中的设备标识
- IOS应用开发中的设备标识
- iOS开发中的应用标识
- iOS开发-获取iOS设备唯一标识
- iOS开发获取设备唯一标识、系统版本、应用版本等信息
- ios 设备唯一标识
- iOS开发中如何获取设备唯一标识
- iOS开发中怎么获取设备的唯一标识
- IOS获取设备唯一标识
- iOS设备唯一标识<二>
- 获取iOS设备唯一标识
- 获取iOS设备唯一标识
- iOS 获取设备唯一标识
- 获取iOS设备唯一标识
- iOS设备唯一标识探讨
- 获取iOS设备唯一标识
- iOS 获取设备唯一标识
- 获取iOS设备唯一标识
- android基础学习005_Android 中一般支持的常用距离单位
- Maven创建web项目具体过程
- dwr的util的使用
- C Programming Chapter2
- 新闻快讯学习(一)
- IOS应用开发中的设备标识
- 在Perl里 对象就是hash引用
- Maven项目的结构图
- JQuery事件处理
- git分支
- 第2章第1节 栈
- 菜鸟学习中-javascript中获取时间
- SQL Where特殊的三个条件(between,in,like(字符串匹配,模糊查寻))
- spring基于通用Dao的多数据源配置