最近遇到了在测试环境下可以正常接收到推送通知,但是在正式环境下却不可以接收到推送通知。并且,appstore上面的app也是可以正常接收到通知。
1.如果你手机中的App是通过XCode直接安装的话,那么你的App就属于开发环境,想要推送成功就需要创建开发环境的证书;如果你的App是打包成ipa文件安装的(不管是正式上线还是自己测试),那么就是生产环境,需要创建生产环境证书,这两个环境的Device token是不同的。
用Xcode直接安装的,都是使用的测试证书;打包成ipa文件的,可以使测试证书,也可以是正式证书
通过实验,发现如下:
1>. 通过Xcode直接安装(都是测试证书)
测试服务器+测试证书:xcode直接安装,正常推送。
正式服务器+测试证书:xcode直接安装,不正常推送。
2>. 打包成ipa文件(两种证书可选)
测试服务器+测试证书:打包上传到bugly,正常推送。
正式服务器+测试证书:打包上传到bugly,正常推送。
测试服务器+正式证书:没必要,不会把测试服务器扔appstore上。
正式服务器+正式证书:打包上传到appstore或TestFlight,正常推送。
问题原因:因为我在测试正式服务器的推送时候,用的是Xcode直接打包安装到手机的,因此,不能正常接收到推送。
解决办法:用正式服务器+测试证书,打包成ipa文件,上传到bugly,下载测试,没有问题。
总结:
通过Xcode直接安装的,都是测试证书。
打包成ipa文件,有两种证书可选。
正式证书只用在appstore上。