什么是远程消息推送功能
苹果给iOS和Mac添加了消息推送的功能,使得我们可以通过后台服务器给应用程序(APP)发送消息,不管APP是否正在使用,比如邮箱的来件提示功能。这项服务被称为Apple Push Notification service(APNs)。里面一共涉及到四个角色:APP、设备、APNs和应用后台服务器(Provider),其中APP、后台服务器和APNs之间使用deviceToken唯一的标识一个用户。
推送服务的工作流程:
APP向系统注册推送服务。
设备从APNs请求deviceToken。
通过代理方法将deviceToken返回给APP。
APP将deviceToken发送给应用后台服务器(Provider)。
应用后台服务器保存deviceToken,然后在需要推送通知的时候,给APNs发送信息,使用deviceToken标识所要送达的客户端。
APNs将后台服务器发过来的数据推送到设备。
设备将消息分发给应用程序。
在使用推送功能的时候,需要在开发者中心创建支持Push Notification的证书,并且将证书和私钥用于应用后台服务器与APNs之间通信。
环境配置
使用推送服务有一些必要条件:
开发者账号。
iOS真机(iPhone、iPad、iPod)。
后台服务器。
网络。
为了使应用支持推送服务,需要配置Provisioning Profile使它支持Push,和普通的Provisioning Profile文件一样分为Development和Production两个版本。我们使用Development版进行测试。
接下来创建一个用于应用后台服务器和APNs服务器通信时使用的SSL证书和私钥。
1 .在钥匙串访问工具中获取证书请求文件(CSR)。
2 .保存请求文件。
3 .从钥匙串访问工具中导出私钥,将它保存为PushKey.p12,输入密码abcde。千万别把密码给忘了哈,等下要用的。
4 .登陆iOS Dev Center创建APP ID和*Provisioning Profile*。