热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS开发中常用的设备标识符(IDFA、IDFV、MAC地址、UDID、openUDID)及其应用场景

在iOS开发过程中,了解并合理使用各种设备标识符对于数据统计和用户分析至关重要。本文详细介绍了几种常用的设备标识符及其应用场景:IDFA(广告标识符)用于广告追踪和归因;IDFV(供应商标识符)适用于同一应用或同一开发者旗下的应用内识别用户;MAC地址和UDID(唯一设备标识符)虽然已被弃用,但在某些历史场景下仍有参考价值;而openUDID作为一种开源解决方案,提供了一种替代UDID的方法。这些标识符各有特点,开发者应根据具体需求选择合适的标识符。


最近做数据统计,详细了解了各个id的意义,做了如下整理:


IDFA:广告标示符(IDFA-identifierForIdentifier)

[objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. "white-space:pre">    NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];  

NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

[objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. "white-space:pre">        //1532FF70-7792-4A1B-9D75-8F67A7672649  

//1532FF70-7792-4A1B-9D75-8F67A7672649

ios6新增方法可以得到NSUUID实例。

自己理解:同一手机的不同app获得的的值相同,一般用于app推广,

用户可通过以下步骤进行重置

1、设置-->隐私---->广告-->还原或限制

2、设置--->设置--->通用--->还原--->还原位置与隐私

IDFV:Vindor标示符
(IDFV-identifierForVendor)

[objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. "white-space:pre">    NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];  

NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

该方法返回的是一个NSUUID对象。



个人理解:该值取CFBundleIndentifier的头两部分,所以一般同一公司(开发者)发布的app
一般CFBundleIndentifier设置比较类似

如:com.autoradio.MyRadio,com.autoradio.MyRadioYB获取的都是com.autoradio

UDID

在iOS5及之后的版本中废弃

OpenUDID
业内通用,但非官方提供 gitHub可进行下载

由第一个使用openudid的app生成,并存放到系统粘贴版(具体也不理解什么原理),之后安装的其他app去粘贴版取,若所有使用openudid的app都删除了,会被重置

但据说ios7之后苹果做了相关限制,还没做详细了解,在ios7之后意义不大


推荐阅读
author-avatar
怕疼不怕死
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有