APNS即Apple Push Notification Service,中文翻译为苹果推送通知服务。特点是稳定、方便,不足是没有送达结果的统计,所以衍生了针对此服务的第三方推送。比如极光推送、leancloud等,很大程度上减少了服务端的开发量。本文主要介绍APNS的开发调试及部署上线的流程。客户端准备工作如下:
创建Certificates
进入苹果开发者中心,打开App IDs,找到Xcode工程对应的Bundle ID,即可看到Push Notifications选项开发与生产配置分别为Configurable,点击Edit,进入下一步Create Certificate,如下图所示。
生成Cer文件的过程中需要本地生成一个.certSigningRequest文件上传
如何生成 Certificate Signing Request
打开mac系统中的Keychain,在证书助理中选择从证书颁发机构请求证书,填写邮箱保存本地即可。如下图:
生成CSR文件后上传,即可生成Developerment版的cer证书,下载证书到本地,双击安装到钥匙串中,然后打开钥匙串找到刚在安装的cer证书,点击导出,选择个人信息交换(.p12)格式。
完成上述操作后,打开终端,进入p12文件所在文件夹,执行以下命令,生成服务端push所用的pem证书就可以了。
1 | openssl pkcs12 -in XXX.p12 -out XXX.pem -nodes |
查看证书有效期:
1 | openssl x509 -in xxx.pem -noout -dates |
返回结果:
1 | notBefore=Nov 6 07:55:33 2015 GMT |
连接APNS测试证书是否合法:
1 | // Development 环境 |
合法返回结果:
1 | Protocol : TLSv1 |
如何测试
Developer环境下的测试推荐一个mac上的app,Cocoa-APNS-Test,部署简单方便。Production环境下的测试则需要Adhoc证书的支持了,具体操作请参考这里。