关于DeviceToken变化:
注:运行安装会生成deviceToken,如果只退出程序,然后再运行,deviceToken不变;但是如果卸载程序,重新安装,deviceToken将发生变化;调试时记得配合后台看有没有及时更新deviceToken
原理篇:http://blog.csdn.net/xyxjn/article/details/40898073
我们的iOS PUSH 流程图:
配置证书具体步骤:
推送证书分为:开发推送证书 和 发布推送证书
(1)前提:
在配置AppID时,注册了推送服务,参见第一部分AppID配置部分;
(2)选择需要配置推送证书的App ID
点击Edit后下拉找到Push Notifications:
以创建开发环境推送证书为例,点击Create Certificate:
继续选择生成好的CSR文件(CSR文件生成见第一部分)
点击Continue完成配置:
点击download下载推送证书,点击Done回到AppID界面可以看到小黄点变绿了:
双击安装刚刚下载的推送证书,在电脑钥匙串可以找到如下证书:
对应一个证书和一个私钥,然后就是生成p12文件给后台兄弟了(有的后台需要把p12转换为pem文件,只需一行命令搞定:
openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes
将文件保存为p12格式,也可以不输密码
点击存储弹出密码框
如果需要转成.pem格式,进入终端,对生成的.p12文件运行命令行:
若提示需要输入密码,输入刚才导出p12时的密码即可;上述就完成了开发环境推送证书的配置,发布环境的推送证书配置类似。
遇到的坑
给服务器端人员.pem文件时需要注意:
1)把生成的.pem文件给服务器端人员
2)同时还要向服务端人员提供推送网址,如下展示:
沙盒测试地址,开发环境时使用
ssl://gateway.sandbox.push.apple.com:2195
正式发布地址,发布环境时使用
ssl://gateway.push.apple.com:2195
3)向服务端人员提供证书和网址是一定要提供对应的证书和网址,否则推送不成功。一般对应逻辑如下:
Product证书--->Product推送证书--->Product证书打包的程序对应的devicetoken--->Product推送网址
推荐阅读百度推送的文档:http://push.baidu.com/doc/ios/api
推荐文章:http://blog.csdn.net/wzc10101415/article/details/51119720
注意:push证书从开发者网站直接下载下来 是一个.cer文件,如果push证书是由A进行配置,而B需要使用这个push证书进行测试,那么A需要导出push证书的p12 交给B安装到自己的钥匙串,然后才能使用这个.cer证书进行push测试,我们传给后台的.pem文件也是同样的道理,需要从.cer文件导出.p12 里边包含了生成证书的私钥,再转成.pem文件