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集成推送功能。
-
创建一个App ID 名字是2fly。
-
注册Mac并下载Certificates。
-
导出钥匙串中证书为P12文件。
创建一个App ID
进入Certificates,Identifiers&Profiles 管理页面(如下图)。

点击Identifiers

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

创建一个新的App ID

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

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

注册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状态。

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

在本地Mac的应用中打开钥匙串访问,我们会从钥匙串中生成需要上传到Member Center的CertificateSigningRequest文件。
进入到钥匙串的页面,鼠标移到左上角-钥匙串访问(左上角)-证书助理-从证书颁发机构请求证书。
在点击‘从证书颁发机构请求证书‘的按钮之后,弹出下面这个界面,存储文件为CertificateSigningRequest。

回到Apple Member Center,上传刚才从钥匙中生成的,存在本地的CertificateSigningRequest文件。
上传完成后点击下一步,Development SSL Certificate便创建完成了,也可以看出Push Notification Development处于Enable状态。
相同的操作创建Production SSL Certificate。

下载App ID的Development和Distributions的.cer证书
下载创建好的Production SSL Certificate,Development SSL Certificate证书到本地。

导出Certificate为P12文件
将创建好的证书添加到钥匙串中。

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

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