推送
条件前提
苹果的远程推送是分测试和发布服务器的:
- 测试服务器地址: gateway.sandbox.push.apple.com 2195
- 发布服务器地址: gateway.push.apple.com 2195
AppID
开发和发布证书
CertSigningRequest证书
Provisioning Profile证书
下载Provisioning Profile证书
导出Development公钥和私钥
工程配置
在对应Bundle ID的工程中开启ATS:
在Targets->Capabilities->Push Notifications,右边开启次功能
处理证书
打开终端,切换到前面所说三个文件下位置,例如:cd ……
Java、.Net后台证书
PHP后台证书
把公钥.cer的SSL证书转换为.pem文件
1
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
把私钥.cer的SSL证书转换为.pem文件
1
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
把公钥.pem和私钥.pem合成一个最终的pem
1
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
测试证书
- 检查你的服务器的端口 2195是否已经开启,是否被关闭了或是防火墙阻止了!这点很重要;如果你不确定,又出现了错误,请先向你的服务器商询问一下,并开启。
- 确认你的证书没有问题
1 | openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem -debug -showcerts -CAfile "apns-dev.pem" |
推荐一款应用程序: Knuff 测试推送工具
服务器后台
Java
1 | import javapns.back.PushNotificationManager; |
PHP
1 | <?php |