1.证书申请
CSR文件生成
申请证书之前需要生成CSR(Certificate Signing Request)文件。
如图1.1在mac桌面左上方点击前往--实用工具--钥匙串访问。
![](https://i-blog.csdnimg.cn/blog_migrate/f5fb779385d2116b28aef9a280a71f80.jpeg)
打开钥匙串后,如图1.2依次点击 钥匙串访问--证书助理--从证书颁发机构请求证书。
![](https://i-blog.csdnimg.cn/blog_migrate/46e2bc8589d6189443a851890e5a5eb1.png)
如图1.3所示,第一个电子邮件可以填写自己常用的电子邮件,第二个常用名称默认就行,请求是选择 存储到磁盘 ,然后点击继续。
![](https://i-blog.csdnimg.cn/blog_migrate/f29d9fab4e1fe1a467be5410a6588aa9.jpeg)
如图1.4给文件起一个好记的名称放在桌面或者常用的文件夹备用。
![](https://i-blog.csdnimg.cn/blog_migrate/7ec686e71e6f444d9a52bf1ef2ee86eb.jpeg)
App ID申请
打开开发者网站登录界面(https://developer.apple.com)点击Account登录。
点击Certificates, IDs & Profiles,打开证书管理界面。
点击Identifiers下的App IDs,如图1.5依次输入应用描述名称(为了自己区分显示),Bundle ID(包名)。
![](https://i-blog.csdnimg.cn/blog_migrate/707fce2e875671d2b6a476b11fadbc49.png)
注意,如图1.6勾选Push Notifications。然后点击continue。
![](https://i-blog.csdnimg.cn/blog_migrate/3d05d9765e2f038894a6ca57f6070a57.png)
进入应用信息确认界面,可以看见Push Notifications状态为Configurable状态。然后点击Register进行注册,Done。
推送证书申请
要接入推送功能,必须有推送证书,而推送证书的申请必须是在开发者账号或者企业账号才行。本教程申请证书的过程以开发者账号为例。
如图1.7所示,点击Certificates下面的All,然后点击+号,创建推送证书。
![](https://i-blog.csdnimg.cn/blog_migrate/d97a193c17aaaef68cfe0c7d1ad02140.jpeg)
为了真机调试方便,这里我们选择开发用证书(Apple Push Notification service SSL (Sandbox)),如图1.8,点击。等整个流程走通以后可以直接申请发布证书,也就是Apple Push Notification service SSL (Sandbox & Production)。
![](https://i-blog.csdnimg.cn/blog_migrate/0c9c59ad69ddc5dc1a067d9a366932cd.jpeg)
点击Continue进入选择App ID的界面,如图1.9选择需要推送功能的应用。然后点击Continue,提示需要CSR文件。
![](https://i-blog.csdnimg.cn/blog_migrate/2e8dd8559fc326bbca284bca1315fd4c.png)
点击Continue,进入CSR上传页面,点击Continue--Choose上传之前创建的CSR文件--Continue。
生成好证书之后点击Download,下载证书文件。然后再下载目录中双击证书文件,导入到钥匙串中,如图1.10
![](https://i-blog.csdnimg.cn/blog_migrate/7537faf4f6b9139e947ad8453f626158.jpeg)
2.证书使用
打开Xcode创建或者打开目标工程,设置Bundle Identifier,此id应该是和之前申请的id一致。
注意工程证书签名应该选择之前申请推送证书的账号。
如图2.1,点击Capabilities,打开Push Notifications开关。打开Background Modes,勾选Remote notifications。
![](https://i-blog.csdnimg.cn/blog_migrate/b1f7465b6aa78ee731a070693666cb61.png)
至此,ios推送功能就开启了。