一. 首先明确什么是UDID,UDID有什么用(Unique Device Identification)ios5之后禁止获取了 ios
UDID是由字母和数字组成的40个字符串的序,用来区别每个惟一的ios设备,包括iPhones, iPads, 以及 iPod touches,这些编码看起来是随机的,其实是跟硬件设备特色相联系的,另外你能够到iTunes点击查询序列号 数据库
UDID能够关联其它各类数据到相关设备上。例如,链接到开发者帐号,能够容许在发布前让设备安装或测试应用;也可让开发者得到iOS测试版进行体验。苹果用UDID链接到苹果的ID,这些设备能够自动下载和安装从App Store购买的应用、保存从iTunes购买的音乐、帮助苹果发送推送通知、即时消息。 安全
在iOS应用早期,UDID被第三方应用开发者和网络广告商用来收集用户数据,能够用来关联地址、记录应用使用习惯……以便推送精准广告。很多用户也对此表示苹果侵犯消费者隐私,所以在后期苹过反对开发人员使用UDID。 服务器
如何获取iOS设备UDID 网络
链接你的ios设备(iPhone, iPad,iPod)到你的iTunes,而后在左边的边栏点击你的设备,右边就会显示出你的设备信息,再用鼠标点击一下你的序列号那一行,就出现UDID了,出现UDID后,直接按键盘的Ctrl+C(mac电脑复制快捷键为为Cmd+C)就能够直接复制好了,粘贴就OK。 app
UDID是设备惟一设备识别符,移动广告运营商和游戏网络运营商能够经过这个udid识别玩家用户并对用户活动进行跟踪,苹果多是由于安全缘由拒绝。 ide
二.先简单介绍下push的机制 函数
2.1 测试
客户端经过 编码
• (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types
这个函数向APNs(Apple Push Service)注册push,types可标明接收的push的类型,声音,数字等。
• (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
当app成功注册通知后,会调用这个函数,并把deviceToken返回给应用。
2.2 整个远程推送的过程及原理:
而后咱们的程序就会把返回的这个deviceToken以及设备的udid及软件版本(淘宝 for iPhone仍是淘宝 for iPad)及系统版本,用户名等发送到咱们的服务器(下图中的provider)上,而后存储在数据库里。
咱们注册远程通知,苹果服务器端(APNS)会返回给应用程序一个device token,咱们把这个token给本身的服务器,而且保存到服务器数据库里。
要发送远程通知时,咱们的服务器会取出要发送的设备的device token,结合发送内容,组成符合特定结构的字符串,将其发送给APNS.而APNS能够根据与APNS创建链接的咱们服务器所使用的证书判断是哪一个app请求发送的notification,继而把这个notification发送到相应的设备上。
三. 区别
咱们知道device token是苹果返回给咱们的NSData数据。那么。
device token究竟是什么呢?不一样的app的device token相同吗?一个设备会产生多个device token吗?一个的device token 可能对应多个UDID吗?
结论:device token是对APNS来讲,设备的标识符,与app无关,因此在同一台设备上,不一样的app得到的device token是同样的; 一个设备可能会产生多个device token, 一个device token也可能对应多个UDID,下面进行解释。
对于APS来讲,token是设备的标识符。device token不一样于UIDevice的uniqueIdentifier(即UDID),由于出于安全和隐私缘由,当设备被擦除后,token必须变化。
总结自:http://blog.csdn.net/xyxjn/article/details/40898073和百度百科。