iOS

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”。

若不成功,则进行接下来几步检查:

  1. 检查后台是否正确配置推送证书
  2. 检查初始化时填写的 cername 是否和管理后台配置的一致
  3. 检查打包证书中是否有私钥
  4. 检查 provisioning profile 里是否包含新增加的推送证书
  5. 检查SDK的日志中的 cername 是否和第三步中的 cername 一致
  6. 代码调试是否可以获取 deviceToken

如果以上步骤均尝试,仍有疑问,请与对应的技术支持联系,以提供解决方案。

此文档是否对你有帮助?
有帮助
去反馈
  • 实现流程
  • 步骤 1:创建 VoIP 证书
  • 步骤 2:上传网易云信服务器
  • 步骤 3:实现离线推送
  • PushKit 推送的问题排查