iOS推送通知的实现步骤

APNs

如果需要给应用集成推送功能,就一定要用到苹果的推送服务。Apple推送通知服务(Apple Push Notification service =APNs),例如友盟,极光之类的推送服务都是向APNs推送消息,APNs再将消息推送给设备的。

考虑到每个人在使用APNs时所处的开发状态都是不一样的,我们假想你当前状态是:在Apple Member Center是没有创建App ID,没有注册Mac,没有安装证书(Certificates)。后面我们将会介绍如何创建APP ID 和安装证书。

如果前面这些中提到的状态你已经完成了一些,也没关系,下面步骤中提到的创建操作换成编辑就可以了。例如,我已经有一个APP ID了,在下面创建App ID的操作就可以变成,编辑已经有的App ID。

从创建一个App ID名字是2fly开始,我们将会给2fly集成推送功能。

  1. 创建一个App ID 名字是2fly。

  2. 注册Mac并下载Certificates。

  3. 导出钥匙串中证书为P12文件。

创建一个App ID

登陆Apple Member Center

进入Certificates,Identifiers&Profiles 管理页面(如下图)。

iOS推送通知的实现步骤
 

点击Identifiers

iOS推送通知的实现步骤
 

进入到App ID选项,创建或是编辑一个App ID(下面将是创建一个App ID的过程)

iOS推送通知的实现步骤
 

创建一个新的App ID

iOS推送通知的实现步骤
 

填写Bundle ID

Note:Bundle ID要和本地需要集成推送功能的项目Bundle Identifier一致。

iOS推送通知的实现步骤
 

勾选App Service中Push Notification服务
勾选后点击Done,2fly的Push Notification这个服务便处于Configurable的状态。

iOS推送通知的实现步骤
 

注册Mac为开发机,创建Certificate

在APP ID中点击展开2fly,查看APP Service 中的Push Notification项。
从图中可以看出,Development SSL Certificate和Production SSL Certificate都是处于Configurable状态。
在创建好相应的Development SSL Certificate 和Produce SSL Certificate(开发,生产证书)之后,2fly的Push Notificaton服务便会由原先的Configurable状态变为Enable状态。

iOS推送通知的实现步骤
 

点击Create创建Development SSL Certificate,点击下一步一直到显示上传CertificateSigningRequest文件为止。
我需要在自己的Mac机上创建CertificateSigningRequest文件。

iOS推送通知的实现步骤
 

在本地Mac的应用中打开钥匙串访问,我们会从钥匙串中生成需要上传到Member Center的CertificateSigningRequest文件。

进入到钥匙串的页面,鼠标移到左上角-钥匙串访问(左上角)-证书助理-从证书颁发机构请求证书。

在点击‘从证书颁发机构请求证书‘的按钮之后,弹出下面这个界面,存储文件为CertificateSigningRequest。

iOS推送通知的实现步骤
 

回到Apple Member Center,上传刚才从钥匙中生成的,存在本地的CertificateSigningRequest文件。

上传完成后点击下一步,Development SSL Certificate便创建完成了,也可以看出Push Notification Development处于Enable状态。

相同的操作创建Production SSL Certificate。

iOS推送通知的实现步骤
 

下载App ID的Development和Distributions的.cer证书

下载创建好的Production SSL Certificate,Development SSL Certificate证书到本地。

iOS推送通知的实现步骤
 

导出Certificate为P12文件

将创建好的证书添加到钥匙串中。

iOS推送通知的实现步骤
 

将钥匙串中的带有有com.gaoios.2fly字样的证书导出,制作P12共享文件,导出证书为p12文件,导出的文件是以.p12为后缀的文件。

iOS推送通知的实现步骤
 

最后将导出的P12文件上传到第三方的推送服务的控制台中即可。