还是从创建证书说起吧 不得不说苹果的证书太坑了~嗻嗻
- 打开钥匙串,从证书颁发机构请求证书 生成
CertificateSigningRequest.certSigningRequest
证书 - 在开发者中心登录开发者账号 创建推送证书(测试版) 创建过程中需要选择第一步中生成的certSigningRequest文件 创建完成后点击下载 生成
aps_development.cer
- 双击打开第二步生成的
aps_development.cer
证书, 在钥匙串中找到该证书 注意:看一下该证书是否有效,如果有效,恭喜你,可以直接导出了,导出,生成一个p12文件(会让你设置密码,后面会用到; 如果无效,双击,选择信任,然后再导出
到这里 证书就全部OK了 接下来打开终端 切换到前面保存证书对应的文件夹下
通过ls命令 可以查看到下面4个文件 其中simplepush.php
暂时不管 待会儿再说
CertificateSigningRequest.certSigningRequest
aps_development.cer
证书.p12
simplepush.php
最关键的几个步骤来了 看好哦
- 把
aps_development .cer
文件生成一个pem文件
openssl x509 -in aps_development.cer -inform der -out Push.pem
- 把
证书.p12
文件生成一个pem文件,此时会让你输入密码(前面导出p12文件时设置的密码)
openssl pkcs12 -nocerts -out PushKey.pem -in 证书.p12
- 把前面生成的两个pem文件合并为一个pem文件
cat Push.pem PushKey.pem > ck.pem
准备工作已完毕 下面进行测试
telnet gateway.sandbox.push.apple.com 2195
如果看到下面的内容 恭喜你 成功了~~
Trying 17.172.232.46...
Connected to gateway.sandbox.push-apple.com.akadns.net.
下面就是如何像APNS发消息了 很简单 只需要将你获取到的deviceToken替换掉simplepush.php
文件中的deviceToken 然后执行下面一句命令就OK了 怎么获取deviceToken不用多说了吧
php simplepush.php
simplepush.php
文件下载地址: 链接: http://pan.baidu.com/s/1pKJWsNx 密码: 5fcp
如果看到下面的内容就说明推送消息已经发到APNS了,然后就看手机上是否已经接收到你发的推送消息了
Connected to APNS
Message successfully delivered
当然,还有第二种方式,这种方式操作起来更简单。首先和上面的一样还是创建证书,然后下载客户端
链接: https://pan.baidu.com/s/1dFmM1LB 密码: m6gf
使用说明:
- 选择相应的证书(.cer)
- 在Xcode中获取设备的deviceToken
- 编辑Payload。图片中添加了messageId和type两个参数,根据需求,可自行修改
- 环境选择(测试、发布)
- 连接服务器,执行推送
好了 继续完善推送跳转吧~~