iOS7 UUID唯一标识
WWDC 2013已经闭幕,IOS7 Beta随即发布,界面之难看无以言表...,简直就是山寨Android。
更让IOS程序猿悲催的是,设备唯一标识的MAC Address在IOS7中也失效了。
IOS系统中,获取设备唯一标识的方法有很多:
一.UDID(Unique Device Identifier)
UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。
二.UUID(Universally Unique Identifier)
UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码.
三.MAC Address
四.OPEN UDID
五.广告标示符(IDFA-identifierForIdentifier)
六.Vindor标示符 (IDFV-identifierForVendor)
Vendor是CFBundleIdentifier(反转DNS格式)的前两部分。来自同一个运营商的应用运行在同一个设备上,此属性的值是相同的;不同的运营商应用运行在同一个设备上值不同。
经测试,只要设备上有一个tencent的app,重新安装后的identifierForVendor值不变,如果tencent的app全部删除,重新安装后的identifierForVendor值改变。
但是很不幸,上面所有这些表示设备唯一号的标识,在IOS7中要么被禁止使用,要么重新安装程序后两次获取的标识符不一样。
由于IOS系统存储的数据都是在sandBox里面,一旦删除App,sandBox也不复存在。好在有一个例外,那就是keychain(钥匙串)。
通常情况下,IOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。
keychain里保存的信息不会因App被删除而丢失。所以,可以利用这个keychain这个特点来保存设备唯一标识。
那么,如何在应用里使用使用keyChain呢,我们需要导入Security.framework ,keychain的操作接口声明在头文件SecItem.h里。
直接使用SecItem.h里方法操作keychain,需要写的代码较为复杂,我们可以使用已经封装好了的工具类KeychainItemWrapper来对keychain进行操作。
KeychainItemWrapper是apple官方例子“GenericKeychain”里一个访问keychain常用操作的封装类,在官网上下载了GenericKeychain项目后,
只需要把“KeychainItemWrapper.h”和“KeychainItemWrapper.m”拷贝到我们项目,并导入Security.framework 。KeychainItemWrapper的用法:
其中方法“- (void)setObject:(id)inObject forKey:(id)key;”里参数“forKey”的值应该是Security.framework 里头文件“SecItem.h”里定义好的key,用其他字符串做key程序会出错!
iOS7 UUID唯一标识相关推荐
- python获取机器唯一标识_开发中常用工具 - 获取设备的唯一标识、UDID、UUID、keychain保存UUID、判断网络...
UDID 全名:Unique Device Identifie(设备唯一标识符) 说明:UDID,即设备唯一标识符,这是除序列号之外每台iOS设备的独一无二的号码.UDID只是和设备相关的,是用来区分 ...
- 通用唯一标识码UUID的介绍及使用
转载自 通用唯一标识码UUID的介绍及使用. 什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构 ...
- python namespace unique_Python使用uuid库生成唯一标识ID
uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identifier). ...
- Windows获取系统唯一标识UUID
Windows获取系统唯一标识UUID (也叫CSP UUID) 命令行 wmic csproduct get uuid C/C++ 使用CoCreateGuid函数,可以参考官方:https:// ...
- _02_使用UUID获取唯一标识
[文章标题:_02_使用UUID获取唯一标识] [202012-29 03:39:00] 需求: 很多时候我们会需要用到 生成不重复的唯一标识的 的功能,如数据库表中的主键等. 实现: 使用U ...
- [转]iOS设备唯一标识探讨
转自:http://www.jianshu.com/p/b83b0240bd0e iOS设备唯一标识探讨 为了统计和检测应用的使用数据,几乎每家公司都有获取唯一标识的业务需求,在iOS5以前获取唯一标 ...
- 转-ios设备唯一标识获取策略
[http://www.2cto.com/kf/201308/237648.html] 英文原文:In iOS 7 and later, if you ask for the MAC address ...
- iOS设备唯一标识获取策略(不定时更新)
在iOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果IOS设备 ...
- iOS获取设备的唯一标识的方法总结以及最好的方法
各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...
最新文章
- 解决Qt+OpenGL更换图像纹理的问题
- 3D点云two-stage目标检测方法优化综述
- 5.QT5中的connect的实现
- 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
- 创建自定义地理(坐标)变换
- 第2天:Ansible-Inventory管理
- 第2章 Python 数字图像处理(DIP) --数字图像基础3 - 图像内插 - 最近邻内插 - 双线性插值 - 双三次内插 - 图像放大
- 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别
- 电子计算机工程学,电子计算机工程学荣誉工学士资料.ppt
- shell脚本eval
- java判断socket是否连接_java判断socket是否连接
- 除了html 还有什么页面,HTML页面布局有哪些?
- Webpack 配置: 自定义网站图标 favicon
- Asio Basic Asio Anatomy
- 论文笔记:PPT: Pre-trained Prompt Tuning for Few-shot Learning
- 帮助你更好的理解Spring循环依赖
- 使用eclipse开发Java Web项目(最最最基础)
- MIKE与SMS网格的区别
- QWT坐标刻度设置时的2个细节
- 用java做一个最小的操作系统内核2.