1. app端推送证书等配置文件的创建;
2. php推送服务器ssl证书的创建;
方法/步骤
-
在developer.apple.com的member center设置AppId属性,
enable push.
-
在developer.apple.com的member center创建APN证书,
Development -> Apple Push Notification service SSL (Sandbox) 用于沙盒app
Production -> Apple Push Notification service SSL 用于AppStore app
创建完毕后,可以第一步AppId的属性列表中查看到证书名称
-
基于第1步修改的AppID重新生成provision file,
在iOS Project中加载此provision file,
这样编译出的app才可以获取到device token(推送唯一标识符)
-
以下为针对服务端的推送设置步骤--------
在keychain中找到第1步创建的APN证书,
展开此证书,分别导出证书和密钥,
名称设为cer.p12和key.p12
-
打开控制台程序,
使用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
-
测试生成的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;
以上命令执行后会打印一大罗信息,最后处于可输入状态,打几个字符回车后自动断开连接即为正常。
-
合并cer.pem及key.pem
$ cat cer.pem key.pem > ck.pem
-
上传ck.pem到推送服务器的推送程序的目录。
Tip:-----------------------
find / -name “*.php”
查询推送服务器php文件目录用。
scp ~/Desktop/ck.pem root@xx.xx.xx.xx:/var/www/html
用于上传本地文件到Linux服务器用。
-
服务器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