iPhone的Push(推送通知)功能原理浅析
2010-06-19 18:53:00 来源:WEB开发网要修补这个问题,唯一的办法就是重新生成唯一且有效的设备证书(device certificate)和密钥(key)。
但是要知道,证书是需要机构签发的,自己一个人随便弄的一个证书,只会被APNS 认为是无效证书。(SSL证书一个多少钱大家可以去查查)
并且对应的文件似乎还和iPhone本机的一些内容相关,不是直接制作好的文件放进去就 可以的。
于是,最早,dev team推出了一个测试版补丁,Push fix by dev team(通过他们的twitter发布的,因此官网没有消息)。这个补丁初期很有效。但是仅在iPhone 2G上比较正常。
之后某人士发布 pushfix 1.0了。由于使用了不同的生成方法,因此在新版本iPhone上也正常工作了。于是风靡一时。
然而,以上两个 补丁都有严重的隐患——他们使用了一个固定的证书作为设备证书(device certificate)。因此在不同iPhone上的区别仅仅在于生成的密钥(key)不同。(待确认)
上面提到 过,APNS依靠每台iPhone独一无二的设备证书(device certificate)和密钥(key)来生成独一无二的设备令牌(device token),用来标识每台iPhone。
但当多个iPhone的设备证书(device certificate)完全一致时,就存在一定几率使得多个iPhone获得相同的设备令牌(device token)
而 随着这两个补丁的使用人数不断增加,使得出现获得相同设备令牌(device token)的iPhone数量大大增加了。
当 这些相同设备令牌(device token)的iPhone上启用了同一个应用程序的Push的时候,就极有可能出现彼此间的Push串发的现象。——如某论坛目前N多人抱怨QQ的 Push到别人iPhone上的情况就是如此。
之后,Pushfix的作者,声称自己可以为每台iPhone手 工制作唯一的设备证书(device certificate)和密钥(key),并且开始提供了付费服务,并且最终推出了付费的 Pushfix 2.0——其通过cydia安装的原理是,在安装的时候在线连接到pushfix站点检查对应iPhone的imei确定是否付费再自动下载对应的证书。
虽 然不知道他是怎么制作这些证书的。但是经过晓晓的验证,他制作的证书确实是有效的。Push问题确实修复了。
在这之后,某论坛上出现了一个叫做 Pushfix_D的补丁,声称无需付费也能直接修复问题。然而,
——考虑到一些情况,我决定把对Pushfix_D的判断用英文发出来。当然, 制作者肯定很清楚下面写的东西:)
- ››iPhone应用帮助残障儿童看图说话
- ››iPhone实用工具AppBox Pro使用教程大揭秘
- ››iphone4省电方法
- ››iphone 获取地址的详细信息
- ››iPhone 库的基本内存管理策略
- ››iPhone加密文字亲手做 私密信息有保障
- ››iphone 根据经纬度坐标取详细地址(包括国,省,市...
- ››iphone/ipad ios cocoa object-c 近期苹果UI部分小...
- ››iphone中如何进行多线程编程
- ››iPhone OS SDK的这些事[安装、下载、版本、实例、...
- ››iPhone ObjectC的NSAutoreleasePool
- ››iPhone 判断设备是在Portrait(纵向)还是(Landscap...
更多精彩
赞助商链接