无论iPhone还是安卓,我们用到的所有应用基本都有推送通知服务,因为这是应用很好的推广方式,有新产品了、有新更新了通知下用户及时查看。但Apple有点特殊,它的推送需要发到苹果服务器上中转一下,这就是苹果的推送通知服务APNs(Apple Push Notification service),例如友盟,极光之类的推送服务都是向APNs推送消息,APNs再将消息推送给设备的,并不像安卓那样直接找到设备发送消息;苹果需要验证是否含有证书,有证书才能发送;现在我们就看看推送证书如何创建:
注:首先说明我们创建推送证书建立在已有APP ID的情况下,一般APP ID创建是一个项目开发首要的,最基本的,如不清楚的自行百度
1、首先登录自己的开发账号,进入iOS Certificates证书中心,点击Certificates 下的All,这时点击右上角的“+”号增加证书,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/c62591b43f7f890d9d5bd6fc7d4013ce.png)
2、进入选择证书类型页面,这里有创建开发证书、发布证书、推送开发证书、推送生产证书,笔者账号开发证书和发布证书都已建满,所以呈灰色,但推送证书(带Push)正常,一般推送的开发和生产证书都需要,开发证书供开发时候用,生产证书发布时用,两种后面的步骤一致,所有在这就不重复介绍,只选择一种,选择好证书类型,点击下面的Continue按钮:
![](https://i-blog.csdnimg.cn/blog_migrate/1229ddbf5315034bd98dd455cc2a41a4.png)
3、选择你需要创建推送证书的应用的APP ID,点击Continue:
![](https://i-blog.csdnimg.cn/blog_migrate/1288448dd42d7bfee6265a5ff041cd11.png)
4、进入Create a CSR file 页面,直接Continue:
![](https://i-blog.csdnimg.cn/blog_migrate/07de0112ba6b8bd44c5092c5bf3122df.png)
5、这时会让你选择CSR file,但是CSR file我们暂时还未创建,所以我们得先创建CSR file,再进行下一步:
![](https://i-blog.csdnimg.cn/blog_migrate/a4d938a111b1efe20338ce5a105b3043.png)
6、在Mac电脑上打开钥匙串访问:
![](https://i-blog.csdnimg.cn/blog_migrate/d31a4cb161a52f47b1a20dc13658aff0.png)
7、点击菜单中的钥匙串访问—>证书助理—>从证书颁发机构请求证书...
![](https://i-blog.csdnimg.cn/blog_migrate/ca1ec9985c2afdb6e150380b09d1b424.png)
8、进入证书助理页面,选择存储到磁盘,电子邮件地址随便填,点击继续:
![](https://i-blog.csdnimg.cn/blog_migrate/e9c73077f4d86eba9980a7eca879cde8.png)
9、这时就创建好了CSR file文件了,桌面出现如下图标:
![](https://i-blog.csdnimg.cn/blog_migrate/f2f04e06ec996a7433e375a61114dd43.png)
10、接下来我们回到第5步,选择好刚创建的CSR file,点击Continue:
![](https://i-blog.csdnimg.cn/blog_migrate/a5ffba7b5e92fe6140f1d58c403f71cc.png)
11、这时证书已经创建好,回到iOS Certificates证书中心页面,我们就可以看到我们创建的两个证书(开发与生产),后面还有到期时间:
![](https://i-blog.csdnimg.cn/blog_migrate/187193615aa80ffab51e0eea6fe04dcd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a506a34dd860d1d1358f61e66577298f.png)
12、我们已经创建好证书了,接下来就是安装证书了,点击Download下载,双击证书,注意一定要双击,开发、生产证书都是一样的,这样推送证书就安装好了,可以去钥匙串看到:
![](https://i-blog.csdnimg.cn/blog_migrate/dab6cebd9f3120e554d102a9b5f1ad8a.png)
13、我们已经创建了证书也已经安装好了证书,但是我们集成的一些第三方平台,如极光推送,还需要我们上传证书到它们平台,但它们要的证书并不是我们之前创建的,而是需要
.p12
文件的证书,这就需要我们从钥匙串导出
.p12
格式,生产、开发都需要,操作如下:
![](https://i-blog.csdnimg.cn/blog_migrate/04bd5572791393e1d0aa011ba998cf5e.png)
14、把上面导出的证书上传到第三方平台就可以,上传成功会提示已验证,这时就可以集成SDK,发送推送了:
![](https://i-blog.csdnimg.cn/blog_migrate/78b8d236fdd772704a03d6e7a11a8d82.png)
有人注意到推送证书有时间期限的,是的,是有有效期,有时我们应用突然接不到消息了,有可能就是证书过期了,有效期一般为1年左右,那有效期快过了怎么处理呢?
解决方案:
1、删除MAC上钥匙串访问中对应的推送证书
2、去开发者中心删掉过期推送证书,重新按着上面的步骤重新来一遍
3、在第三方平台上重新上传新的.p12证书
已上线的应用也是一样,删掉证书不会影响推送,只要对应的APP ID是一样的!