iOS

iOS PushKit 配置

更新时间: 2025/02/14 15:57:00

在 iOS 8 苹果新引入了名为 PushKit 的框架和一种新的 push 通知类型,被称作 VoIP Push。该 Push 方式旨在提供区别于普通 APNs Push 的能力,通过这种 Push 方式可以使 App 执行自定义的代码(在弹出通知给用户之前)。而该通知的默认行为和 APNs 通知有所区别,它的默认行为里面是不会弹出通知的。

PushKit 框架用于直接发送特定种类的通知到开发者自己的应用,例如 VoIP (Voice over IP), watchOS 各类部件更新等等。其中 VoIP 类型推送可以帮助提 VoIP 类应用的体验。本文主要介绍 VoIP Push 的相关配置。

第一步:创建 VoIP 证书

为了能够接收到消息推送,首先需要创建一个 Identifier。

image-netease

指定一个 bundle id 给应用程序。本示例中使用 com.emily.voiptest 示例。先不用担心 App Service 部分选项,可以在后面进行补充。

image-netease

目前已经设置好 Identifier 部分已经设置好,接下来需要配置消息推送需要的证书。

image-netease image-netease

接下来要求选择一个 App ID,这里选择刚刚创建的 ID。下面介绍通过钥匙串创建 CSR 证书:

image-netease image-netease image-netease

之后下载证书,并单击,就能自动导入钥匙串。找到您的 certificate 并单击证书旁边的小箭头,同时得到 certificate 和对应的 key。

image-netease

选择 p12 格式并命名。注意文件格式如下图所示:

image-netease

第二步:上传网易云信服务器

  1. 进入 网易云信控制台,选择对应的应用。

    image-netease
  2. 上传刚刚导出的 p12 文件,以上传时填写的证书名做区分。

    image-netease
  3. 开发环境或生产环境,请选择与该证书生成时相同的环境类型。

    image-netease

第三步:实现离线推送

  • 注意保证创建工程的 bundle identifier 必须和证书使用的相同,这样才可以发送推送。
  • 在 Target 的 capabilities->background Modes 下打开 Voice over IP
  • 引入 PushKit 服务

PushKit 推送的问题排查

  • 首先确认证书的配置,具体配置操作见上文第一第二条

  • 若证书配置无误,则下载本地 pusher 工具 检测是否能收到消息,这个工具的 README 文档中包含了安装方式

    image-netease

    界面如上图所示。

通过 AppDelegate 文件这个函数日志获取 PushKit token

image-netease image-netease

配置后进行推送,若推送成功会出现在左下角 image-netease 并且手机该 app icon 上出现推送红色角标 555

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

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

如果以上步骤均尝试,仍有疑问,请 提交工单 联系网易云信技术支持工程师,以提供解决方案。

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