【苹果推信设备黑】

133 阅读3分钟

推荐内容IMESSGAE相关

作者✈️@IMEAX推荐内容[iMessage苹果推软件] *** 点击即可查看作者要求内容信息
作者✈️@IMEAX推荐内容[1.家庭推相册推日历推内容] *** 点击即可查看作者要求内容信息
作者✈️@IMEAX推荐内容[2.iMessage代发推送]*** 点击即可查看作者要求内容信息
作者✈️@IMEAX推荐内容[3.iMessage推送系统] *** 点击即可查看作者要求内容信息
作者✈️@IMEAX推荐内容[4.IM群发协议推送] *** 点击即可查看作者要求内容信息
作者✈️@IMEAX推荐内容[5.iMessage推送设备] *** 点击即可查看作者要求内容信息

苹果基于bug原因,停用了服务器端的SSL3.0连接方式。目前只支持TLS连接。

1. 如果推送的时候deviceToken对应的机器在APNS服务器上是离线状态,苹果会保存推送信息“一段时间”。当机器恢复在线状态时,推送信息到该机器。如果机器长时间不在线,苹果会抛弃掉这条消息。这个“一段时间”没有明文说多久,而且不知道苹果在不同情况下对这个时间有没有动态调整,所以无法推测这个时间对于信息丢失情况的影响。 2. 对于连续推送的情况,针对离线设备,苹果永远只存储最新的一条,上一条信息会被抛弃。 3. 有多条推送任务时,苹果推荐使用单个连接持续发送,而不是重复的开关连接,否则会被苹果认为D-O-S攻击给拒绝掉。如果有多台服务器,可以并发连接到APNS,分摊推送任务,可以更高效的执行任务。 4. 发送多条推送任务时,如果其中有一条推送使用了错误的deviceToken,那么连接就会被断掉,导致后面的推送任务停止执行。苹果通过一个“The Feedback Service”的服务来定期告知provider无效的deviceToken列表,如何使用这个服务参见苹果官方文档中的详细说明,下面有附连接。

Development和Production两个版本对应的apns device token是不同的,前者是develop的mobileprovision下获取的。后者是production的mobileprovision获取的。 Development和Production两个版本可以共用一个App ID(不推荐。共用时每次调试前都要删除设备上的app,重新打包生成。而且共用appid会经常抓狂,早上行,下午就不行了。所以不推荐),但是不能共用一个mobileprovision,所以要单独生成Distribution的证书供production版本使用。 注:Distribution的版本是无法在设备上debug调试的! Development和Production两个版本的code sign是不同的,前者是iPhone Developer,后者是iPhone Distribution。注意不能搞错。

无论是Development Push SSLCertificate还是Production Push SSL Certificate 都有过期时间的。Development Push SSL Certificate有效期大概四个月左右(后来好像改到一年了),而ProductionPush SSL Certificate的有效期是一年。需要注意在过期之前生成新的证书,以免影响使用。官网可以同时设置两个,第一个快过期的时候,生成第二个,然后替换服务器证书,等第二个使用一周没问题后删除第一个证书设置。

openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-cert.p12 openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem