1.删除过期证书:删除MAC上钥匙串访问中对应的推送证书( WARNING:别慌,已上线的应用也是一样,删掉证书不会影响推送,只要对应的APP ID是一样的!)
2.去开发者中心删掉过期推送证书,重新生成新的推送证书 (参考链接:iOS - 推送证书的创建及过期处理 、iOS - 消息推送 (APNS) 证书设置指南)
3.生成服务端所需的.pem文件(参考链接:如何生成.pem文件?)
范例:生成xxx的推送证书.pem文件
生成公钥.pem文件: openssl pkcs12 -clcerts -nokeys -out com-test-app.pem -in com-test-app.p12
生成私钥.pem文件: openssl pkcs12 -nocerts -out com-test-app-key.pem -in com-test-app-key.p12
产出私钥pem文件密码:openssl rsa -in com-test-app-key.pem -out com-test-app-key-noenc.pem
合并公钥.pem文件、无密码私钥.pem文件: cat com-test-app.pem com-test-app-key-noenc.pem > apns-com-test-app.pem
4.执行服务端提供脚本,测试.pem文件是否可用
范例:
使用开发环境deviceToken时,执行:
curl -v -d '{"aps":{"alert":"hi","sound":"default"},"url":"m.lehe.com"}' --cert pem证书路径: -H "apns-topic: com-test-app" --http2 api.development.push.apple.com/3/device/开发环境app的devcie_token
使用线上环境deviceToken时,执行:
curl -v -d '{"aps":{"alert":"hi","sound":"default"},"url":"m.lehe.com"}' --cert pem证书路径: -H "apns-topic:com-test-app" --http2 api.push.apple.com/3/device/线上app的devcie_token