最新的服务器端生成iOS推送证书的方式,虽然有很多,但是笔者觉得很多都过时了,并不是很实用
笔者和后台调试推送,很多时候发送不成功,根本找不到什么原因,到底是你的证书有问题还是服务器发送的方法有问题?照着笔者的步骤生成的证书,如果服务器还是发送不成功,你绝对可以理直气壮说服务器端的问题,再也不用怀疑你的证书有问题了
一、生成App ID的方法笔者就不介绍了,方法很多
点击连接 https://developer.apple.com 登录,如果你没有生成App ID,你的需要先申请一个App ID,(不过开始做推送了,一般都已经生成App ID了)生成AppID也是很简单的,生成之后照如下步骤生成即可
二、 找到如下图,点击需要生成推送的ID
三 、点击Edit(笔者的推送已经开通,所有状态可能有不一样的,不要担心这个,继续步骤就好)
四、找到Push Notifications(笔者只讲解正式环境的生成,测试环境步骤一致,自己重复就好了)
第一步:点击正式环境的download,即下载了一个aps.cer的文件,找到并点击该aps.cer文件,之后会自动打开钥匙串并生成一个证书;
第二步:保存该aps.cer文件,后面用得到。
注: 在钥匙串(我的证书)中有一个Apple Push Services:你的bundleID的一个证书(如果是测试证书,前面有一个Development的字样)
五、导出.cer生成的文件(导出默认生成.p12文件)
第一步:右击证书(Apple Push Services:你的bundleID的一个证书,测试的带有Development),选择导出该证书,
第二步:生成push.p12文件,此刻需要输入密码,牢记该密码,建议此过程所有密码均用一个,笔者用123456(最好设置一个难度大的密码)
第三步:桌面即生成一个push.p12文件
六、生成.pem文件(一下步骤如果有需要输入密码的,输入1.4中用的密码123456密码即可)
打开终端,切换到桌面目录之下
第一步:使用四中保存的aps.cer文件生成push_production_cer.pem文件
终端执行: openssl x509 -in aps.cer -inform der -out push_production_cer.pem
第二步:使用五中生成的push.p12生成push_production_key.pem文件
终端执行: openssl pkcs12 -nocerts -out push_production_key.pem -in push.p12
七、合成pem文件
使用六中生成的两个.pem文件合成push_production.pem文件
终端执行:cat push_production_cer.pem push_production_key.pem > push_production.pem
则在桌面生成了一个push_production.pem文件