什么是udid?
udid 「unique device identifier description」是由子母和数字组成的40个字符串的序号,用来区别每一个唯一的ios设备,包括 iphones, ipads, 以及 ipod touches,这些编码看起来是随机的,实际上是跟硬件设备特点相联系的,另外你可以到itunes,pp助手或itools等软件查看你的udid(设备标识),如下
udid是用来干什么的?
udid可以关联其它各种数据到相关设备上。例如,连接到开发者账号,可以允许在发布前让设备安装或测试应用;也可以让开发者获得ios测试版进行体验。苹果用udid连接到苹果的id,这些设备可以自动下载和安装从app store购买的应用、保存从itunes购买的音乐、帮助苹果发送推送通知、即时消息。
在ios 应用早期,udid被第三方应用开发者和网络广告商用来收集用户数据,可以用来关联地址、记录应用使用习惯……以便推送精准广告。
为什么苹果反对开发人员使用udid?
ios 2.0版本以后uidevice提供一个获取设备唯一标识符的方法uniqueidentifier,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标示符。
许多开发者把udid跟用户的真实姓名、密码、住址、其它数据关联起来;网络窥探者会从多个应用收集这些数据,然后顺藤摸瓜得到这个人的许多隐私数据。同时大部分应用确实在频繁传输udid和私人信息。
为了避免集体诉讼,苹果最终决定在ios 5 的时候,将这一惯例废除,开发者被引导生成一个唯一的标识符,只能检测应用程序,其他的信息不提供。现在应用试图获取udid已被禁止且不允许上架。
ios 6.0系统新增了两个用于替换uniqueidentifier的接口,分别是:identifierforvendor,advertisingidentifier。
提供的功能就是“同一开发商的app在指定机器上都会获得同一个id。当我们删除了某一个设备上某个开发商的所有app之后,下次获取将会获取到不同的id。” 也就是说我们通过该接口不能获取用来唯一标识设备的id,具体如下:
代码:
- #import <adsupport/adsupport.h>
- nsstring *adid = [[[asidentifiermanager sharedmanager] advertisingidentifier] uuidstring];
来源:ios6.0及以后
代码:
nsstring *idfv = [[[uidevice currentdevice] identifierforvendor] uuidstring];
来源:ios6.0及以后
什么是序列号?
序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机。
你可以简单的将这一串数字分割为:aabccdddeef 的形式。拿iphone 4为例
aa = 工厂及生产线编号 b = 年份 cc =制造周数 ddd = 机身识别码 ee = 颜色 f = 容量大小 ,通过序列号在苹果官网可以查询手机的激活和保修信息
综上,udid和序列号是ios设备特有的属性。什么是imei?
imei(international mobile equipment identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。手机用户可以在手机中查到自己手机的imei码。imei可用移动终端设备通过键入“*#06#”查得(不同厂商的手机所需输入的内容不同,同一厂商不同手机所需输入的内容也可能不同)。其总长为15位,每位数字仅使用0~9的数字。imei码由gsm(全球移动通信协会)统一分配,授权babt(英国通信认证管理委员会)审受。imei组成为:1、前6位数(tac,type approvalcode)是"型号核准号码",一般代表机型。2、接着的2位数(fac,final assembly code)是"最后装配号",一般代表产地。3、之后的6位数(snr)是"串号",一般代表生产顺序号。4、最后1位数(sp)通常是"0",为检验码,备用。
什么是imsi?
国际移动用户识别码(imsi:international mobile subscriber identification number)是区别移动用户的标志,储存在sim卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。
imsi 与你的手机卡是绑定关系 用于区别移动用户的有效信息imei 与你的手机是绑定关系 用于区别移动终端设备 什么是iccid? iccid:integrate circuit card identity 集成电路卡识别码(固化在手机sim卡中),简单来说就是sim卡序列号,它拥有独一无二的特性,类似于手机的序列号,仅仅指向一张手机卡。共有20位数字组成,不同运营商编码格式不一样。并且前六位数字为运营商代码:比如中国移动的为:898600;中国联通的为:898601,中国电信的为:898603。