一、介绍
VOIP的推送证书的创建方式和普通的证书的创建方式基本一致。
二、步骤
首先需要生成证书签名的请求文件CerSingingRequest,打开钥匙串应用,点击钥匙串访问->证书助理->从证书颁发机构请求
![](https://img-blog.csdnimg.cn/img_convert/082a29c7c893df948f06ff544d543d59.png)
输入电子邮件和名称后保存到本地
![](https://img-blog.csdnimg.cn/img_convert/8ef620dabd23c6e7bfbfee1f1e6c39af.png)
3.在developer.apple.com后台新增voip证书
添加证书:
![](https://img-blog.csdnimg.cn/img_convert/5e4cb73a37165ef5c67ed954556c318b.png)
选择证书类型:
![](https://img-blog.csdnimg.cn/img_convert/958d36437fff95f4d4a62b1baf6418b4.png)
绑定bundleID:
![](https://img-blog.csdnimg.cn/img_convert/79d36af33062304b9c1c21c1bf2a1579.png)
三、推送测试与证书配置
1、生成p12证书
安装步骤一生成的VOIP证书
在钥匙串访问中找到该证书
右键选择导出
选择文件格式为个人信息交换
![](https://img-blog.csdnimg.cn/img_convert/a5d9e11c6fe4b748f7eb85aef6de3d3e.png)
输入证书密码(可以不输入密码保存)
![](https://img-blog.csdnimg.cn/img_convert/ae2a908acd6fe95dd8450c09518ca9a3.png)
2、修改脚本文件为自己项目的相关配置
# Note: You MUST have curl 7.47+ with http/2 support compiled in
curl -v \
-d '{
"aps" : {
"alert" : "Your message here.",
"badge" : 10,
"sound" : "default"
},
"acme1" : "bar",
"acme2" : 42
}' \
-H "apns-topic: 你的BundleID.voip" \
-H "apns-priority: 10" \
-H "apns-push-type: voip" \
--http2 \
--cert-type P12 --cert 你的p12证书名称.p12:你的P12证书密码 \
https://api.development.push.apple.com/3/device/你的设备Token
#备注---开发环境:api.development.push.apple.com,生产环境:api.push.apple.com
3.打开终端,跳转到sh脚本目录文件并是p12文件在同级目录执行脚本文件就可以在pushkit的代理方法中收到通知了,用户不打开推送和锁屏都可以收到相应通知。
sh voip_push.sh
四、app内配置
1.配置push
![](https://img-blog.csdnimg.cn/img_convert/790e85d2a3cafb8c938b3407cf1f9143.png)
2.配置 Background Modes
![](https://img-blog.csdnimg.cn/img_convert/6cb96066b76de9a4a23c8537c2cdc4e7.png)
![](https://img-blog.csdnimg.cn/img_convert/ef49075d36b7e8bae69e9a2f9a74254d.png)
3.配置依赖系统库
![](https://img-blog.csdnimg.cn/img_convert/2461dc7b9a6f55cac01d8c67dd152537.png)