iOS PushKit 配置
更新时间: 2024/03/14 17:08:34
在 iOS 8 苹果新引入了名为 PushKit 的框架和一种新的 push 通知类型,被称作 VoIP Push。该 Push 方式旨在提供区别于普通 APNs Push 的能力,通过这种 Push 方式可以使 App执行自定义的代码(在弹出通知给用户之前);而该通知的默认行为和 APNs 通知有所区别,它的默认行为里面是不会弹出通知的。
PushKit 框架用于直接发送特定种类的通知到开发者自己的应用,例如 VoIP (Voice over IP), watchOS 各类部件更新等等。其中 VoIP 类型推送可以帮助提 VoIP 类应用的体验。本文主要介绍 VoIP Push 的相关配置。
实现流程
步骤 1:创建 VoIP 证书
为了能够接收到消息推送,首先需要创建一个 Identifier。
指定一个 bundle id 给应用程序。本示例中使用** com.emily.voiptest **示例。先不用担心App Service部分选项,可以在后面进行补充。
目前已经设置好Identifier部分已经设置好,接下来需要配置消息推送需要的证书。
接下来要求选择一个App ID,这里选择刚刚创建的ID。下面介绍通过钥匙串创建 CSR 证书:
之后下载证书,并点击,就能自动导入钥匙串。找到你的 certificate 并点击证书旁边的小箭头,同时得到 certificate 和对应的 key。
选择p12格式并命名。注意文件格式如下图所示:
步骤 2:上传网易云信服务器
- 进入网易云信官网,选择对应的应用。
- 上传刚刚导出的p12文件,以上传时填写的证书名做区分。
- 开发环境或生产环境,请选择与该证书生成时相同的环境类型。
步骤 3:实现离线推送
- 注意保证创建工程的 bundle identifier 必须和证书使用的相同,这样才可以发送推送。
- 在 Target 的 capabilities->background Modes 下打开 Voice over IP
- 引入PushKit服务
PushKit 推送的问题排查
- 首先确认证书的配置,具体配置操作见上文第一第二条
- 若证书配置无误,则下载本地pusher工具检测是否能收到消息,这个工具的 README 文档中包含了安装方式
界面如上图所示。
通过 AppDelegate 文件这个函数日志获取 PushKit token
配置后进行推送,若推送成功会出现在左下角并且手机该 app icon 上出现推送红色角标 “555”。
若不成功,则进行接下来几步检查:
- 检查后台是否正确配置推送证书
- 检查初始化时填写的 cername 是否和管理后台配置的一致
- 检查打包证书中是否有私钥
- 检查 provisioning profile 里是否包含新增加的推送证书
- 检查SDK的日志中的 cername 是否和第三步中的 cername 一致
- 代码调试是否可以获取 deviceToken
如果以上步骤均尝试,仍有疑问,请与对应的技术支持联系,以提供解决方案。