apns原生推送,收不到通知的问题解决

首先,血的教训:

测试环境和发布环境推送的地址是不一样的!!!

String host = "gateway.sandbox.push.apple.com";  //这个是测试环境推送的地址
//String host = "gateway.push.apple.com";//这个是发布环境推送的地址
//端口都是2195

然后,测试环境和发布环境使用的证书制作方法是不一样的,至于为什么我们也不知道,反正就是这样可以调通。。。。。直接使用aps_development.cer转p12文件收不到通知,可能和后台使用的语言有关系,我们这边后台使用的.net,需要这样用,JAVA的直接转P12可能有用。

测试环境证书由一下3步合成,

1、将aps_development.cer转换成aps_development.pem格式。

openssl x509 -in aps_development.cer -inform DER -outaps_development.pem -outform PEM

2、将"生产环境的推送证书".cer转换为p12格式文件:PushChat.p12

然后将PushChat.p12转换成pem,需要设置3次密码,密码都设置为:111111

openssl pkcs12 -nocerts -out PushChat_Noenc.pem -in PushChat.p12

3、用certificatethe key创建PKCS#12格式的文件。

openssl pkcs12 -export -in aps_development.pem -inkey PushChat_Noenc.pem -certfile CertificateSigningRequest.certSigningRequest -name "aps_developer_identity" -out aps_developer_identity.p12


发布环境证书直接双击aps.cer,然后进钥匙串中导出为p12文件即可。



你可能感兴趣的:(iOS开发)