无论iPhone还是安卓,我们用到的所有应用基本都有推送通知服务,因为这是应用很好的推广方式,有新产品了、有新更新了通知下用户及时查看。但Apple有点特殊,它的推送需要发到苹果服务器上中转一下,这就是苹果的推送通知服务APNs(Apple Push Notification service),例如友盟,极光之类的推送服务都是向APNs推送消息,APNs再将消息推送给设备的,并不像安卓那样直接找到设备发送消息;苹果需要验证是否含有证书,有证书才能发送;现在我们就看看推送证书如何创建:
注:首先说明我们创建推送证书建立在已有APP ID的情况下,一般APP ID创建是一个项目开发首要的,最基本的,如不清楚的自行百度
1、首先登录自己的开发账号,进入iOS Certificates证书中心,点击Certificates 下的All,这时点击右上角的“+”号增加证书,如下图:
![](http://upload-images.jianshu.io/upload_images/5429377-74ec11e03f8838b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
2、进入选择证书类型页面,这里有创建开发证书、发布证书、推送开发证书、推送生产证书,笔者账号开发证书和发布证书都已建满,所以呈灰色,但推送证书(带Push)正常,一般推送的开发和生产证书都需要,开发证书供开发时候用,生产证书发布时用,两种后面的步骤一致,所有在这就不重复介绍,只选择一种,选择好证书类型,点击下面的Continue按钮:
![](http://upload-images.jianshu.io/upload_images/5429377-e07d37758315f64e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
3、选择你需要创建推送证书的应用的APP ID,点击Continue:
![](http://upload-images.jianshu.io/upload_images/5429377-80f0ecd9473ed41a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
4、进入Create a CSR file 页面,直接Continue:
![](http://upload-images.jianshu.io/upload_images/5429377-3d626d81582f255d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
5、这时会让你选择CSR file,但是CSR file我们暂时还未创建,所以我们得先创建CSR file,再进行下一步:
![](http://upload-images.jianshu.io/upload_images/5429377-9f43530a81282c4d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
6、在Mac电脑上打开钥匙串访问:
![](http://upload-images.jianshu.io/upload_images/5429377-33972483b826c241.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
7、点击菜单中的钥匙串访问—>证书助理—>从证书颁发机构请求证书...
![](http://upload-images.jianshu.io/upload_images/5429377-4ea16c89ec1d0db0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
8、进入证书助理页面,选择存储到磁盘,电子邮件地址随便填,点击继续:
![](http://upload-images.jianshu.io/upload_images/5429377-1df9b65808702e0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/616)
9、这时就创建好了CSR file文件了,桌面出现如下图标:
![](http://upload-images.jianshu.io/upload_images/5429377-8fff9494b1283424.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/286)
10、接下来我们回到第5步,选择好刚创建的CSR file,点击Continue:
![](http://upload-images.jianshu.io/upload_images/5429377-b6dbd9f5543fb1c4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
11、这时证书已经创建好,回到iOS Certificates证书中心页面,我们就可以看到我们创建的两个证书(开发与生产),后面还有到期时间:
![](http://upload-images.jianshu.io/upload_images/5429377-901cba835e6585d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
![](http://upload-images.jianshu.io/upload_images/5429377-8e1781f6e86b5f34.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
12、我们已经创建好证书了,接下来就是安装证书了,点击Download下载,双击证书,注意一定要双击,开发、生产证书都是一样的,这样推送证书就安装好了,可以去钥匙串看到:
![](http://upload-images.jianshu.io/upload_images/5429377-1b51c8100a7609dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
13、我们已经创建了证书也已经安装好了证书,但是我们集成的一些第三方平台,如极光推送,还需要我们上传证书到它们平台,但它们要的证书并不是我们之前创建的,而是需要
.p12
文件的证书,这就需要我们从钥匙串导出
.p12
格式,生产、开发都需要,操作如下:
![](http://upload-images.jianshu.io/upload_images/5429377-daa6f8685bb207e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
14、把上面导出的证书上传到第三方平台就可以,上传成功会提示已验证,这时就可以集成SDK,发送推送了:
![](http://upload-images.jianshu.io/upload_images/5429377-a2184bbd4e590956.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
有人注意到推送证书有时间期限的,是的,是有有效期,有时我们应用突然接不到消息了,有可能就是证书过期了,有效期一般为1年左右,那有效期快过了怎么处理呢?
解决方案:
1、删除MAC上钥匙串访问中对应的推送证书
2、去开发者中心删掉过期推送证书,重新按着上面的步骤重新来一遍
3、在第三方平台上重新上传新的.p12证书
已上线的应用也是一样,删掉证书不会影响推送,只要对应的APP ID是一样的!
声明: 转载请注明出处http://www.jianshu.com/p/ca8df77ee18e
作者:杰森_Jason
链接:https://www.jianshu.com/p/ca8df77ee18e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。