菜单

iOS推送功能实现步骤

2017年07月30日 - iOS

1. app端推送证书等配置文件的创建;

2. php推送服务器ssl证书的创建;

工具/原料

  • Mac
  • Linux Push Server
  • iOS APP Project

方法/步骤

  1. 在developer.apple.com的member center设置AppId属性,

    enable push.

    iOS推送功能实现步骤
    iOS推送功能实现步骤
  2. 在developer.apple.com的member center创建APN证书,

    Development -> Apple Push Notification service SSL (Sandbox) 用于沙盒app

    Production -> Apple Push Notification service SSL 用于AppStore app

    创建完毕后,可以第一步AppId的属性列表中查看到证书名称

    iOS推送功能实现步骤
    iOS推送功能实现步骤
    iOS推送功能实现步骤
    iOS推送功能实现步骤
    iOS推送功能实现步骤
  3. 基于第1步修改的AppID重新生成provision file,

    在iOS Project中加载此provision file,

    这样编译出的app才可以获取到device token(推送唯一标识符)

    iOS推送功能实现步骤
    iOS推送功能实现步骤
    iOS推送功能实现步骤
    iOS推送功能实现步骤
  4. 以下为针对服务端的推送设置步骤--------

    在keychain中找到第1步创建的APN证书,

    展开此证书,分别导出证书和密钥,

    名称设为cer.p12和key.p12

    iOS推送功能实现步骤
  5. 打开控制台程序,

    使用openssl 将cer.p12及key.p12转成cer.pem和key.pem

    命令如下:

    $ openssl pkcs12 -clcerts -nokeys -out cer.pem -in cer.p12

    $ openssl pkcs12 -nocerts -out key.pem -in key.p12

  6. 测试生成的cer.pem及key.pem是否可用

    $ openssl s_client -connect gateway.push.apple.com:2195  -cert cer.pem -key key.pem

    注:gateway.push.apple.com:2195用于appStore app;

    gateway.sandbox.push.apple.com:2195用于沙盒app;

    以上命令执行后会打印一大罗信息,最后处于可输入状态,打几个字符回车后自动断开连接即为正常。

  7. 合并cer.pem及key.pem

    $ cat cer.pem key.pem > ck.pem

  8. 上传ck.pem到推送服务器的推送程序的目录。

    Tip:-----------------------

    find / -name “*.php”

    查询推送服务器php文件目录用。

    scp ~/Desktop/ck.pem root@xx.xx.xx.xx:/var/www/html

    用于上传本地文件到Linux服务器用。

  9. 服务器php代码加载ck.pem向苹果服务器推送消息:略

    客户端oc代码获取token,接收推送消息:略

     

稳妥:
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
$ cat PushChatCert.pem PushChatKey.pem > ck.pem
$ openssl s_client -connect gateway.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注