View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

更多视频

大多数浏览器和
Developer App 均支持流媒体播放。

  • 简介
  • 转写文稿
  • Apple Push Notification Service 的新功能

    首先回顾基于 HTTP/2 的提供程序 API,然后了解一项重要的新功能:基于令牌的身份验证。了解如何利用身份验证令牌连接到 APN,以通过 HTTP/2 API 发送推送信息,从而减少与维护有效证书相关的开销。

    资源

      • 高清视频
      • 标清视频
    • 演示幻灯片 (PDF)
  • 搜索此视频…

    Apple Push Notification Service的 新功能 欢迎来到724号会议 关于Apple Push Notification Service的 新功能 我是Mayur Mahajan 我从事于Apple Push Notification Service 即APNS 我迫不及待跟你们分享 APNS中即将上线的功能

    首先让我们回顾一些 过去已经增强的功能 这些功能是在去年发布的

    首先我们提供了一种新的服务端协议 基于HTTP/2来进行 持续的推送 HTTP/2协议传输采用二进制编码 支持在一个连接中使用多种数据流 并且十分快速 这种新的协议让推送一则消息 变得很容易

    这种新的协议支持即时的反馈 从而可以立即获知设备的token 是否处于激活状态

    这种协议还允许发送 更多字节的有效载荷 最多可以发送4000字节 你可以利用这一点 来创建更加丰富的应用

    此外 我们还简化了证书的处理 所以你们现在只需要维护更少的证书 这些证书被用来与APNS进行连接

    我们获得了很多积极的反馈 这些反馈来自开发者社区

    我们现在每秒推送着数十万条通知 归功于使用了这种新的协议 如果你还没有试用过新的推送服务 那么你真的应该去尝试一下了

    让我们重新来看一下那些关键的步骤 关于发送一则Push Notification 右下角是客户端应用 右上角是供应商 它是一个服务端组件用来连接APNS 并且发送 Push Notification

    目前在你开始发送通知之前 你应该注册 Push Notification 通过你的开发者帐号来完成

    这样你的应用就可以 向操作系统来注册推送服务 当它在设备上运行的时候 左下角

    设备会向APNS请求一个token 这个token用来代表这个应用 设备会将该token传递给你的应用

    这个token具有唯一的标识性 代表了你的应用运行在了相应的设备上

    你的应用应该将 该token转发给供应商

    现在供应商服务 就可通过客户端的证书连接到APNS 然后发送一个标准的 HTTP/2的POST请求 从而向那个token 发送一次推送

    HTTP/2供应商接口将 提供一个即时回应 来表示是否能成功发送 同时 APNS收到 并且会验证这个推送请求是否有效

    如果发生错误 就会报告这个token无效 APNS会返回 一个状态码为400的错误信息 或者“无效请求” 以及相关的错误指示 举例来说 设备token无效

    新的供应商协议会提供即时的反馈 如果设备token被移除了 那么你会得到一个HTTP/2的回应 其状态码410或代表移除的文字描述

    并且该回应中 还提供了一个时间戳来标识 APNS何时知道 该设备token被移除了

    我们还简化了证书的相关处理 作为新的供应商协议的一部分

    你现在只需要规定一次证书 来覆盖你的应用 complication以及Voip Push

    这个证书既可以在开发环境 又可以在生产环境中使用

    这样可以减少很多麻烦 在管理 新建 以及撤回证书的过程中 开发者可以避免一些过去出现的麻烦

    现在 让我们来听一下 像你们开发者的反馈 并且我们已经认识到了 简化工作流程的重要性 那些在发送推送通知中涉及到的流程

    我们意识到管理证书实在是太复杂了 对于很多应用来说

    所以今天我们非常激动的通知 一个新的 简洁的认证机制会引入到APNS中

    token认证机制介绍 在APNS中的应用

    Token认证机制通过 用供应商的token 在发送通知的过程中 替代了客户端的证书

    这种认证token是用来 简化服务端与APNS之间的连接方式

    此外 这些token非常容易 通过程序生成 所以再也不用担心 需要去处理那些证书过期的问题了

    这一切能实现依赖于 JSON Web token 作为一种生成认证证书的机制

    有很有多种程序语言 选项的库可以用 来生成这些token

    现在 在我们讨论一些细节之前 关于token认证机制的细节 让我们首先了解 证书认证机制是如何工作的

    你们可以选择参加

    通过开发者账号获得一个客户端证书

    当使用同一种认证连接APNS的时候 APNS会提供一个服务端的证书 用来让你信任和效验

    就像握手一样 你的供应商会为客户端证书签名 从而APNS会进行效验并且建立证书 此时一个彼此信任的连接就建立了 在APNS与供应商之间

    任何通过这个连接发送的 推送都会附加 一个客户端证书中的应用标示

    当使用token认证机制的时候 你应通过账户选择一个token 的签名键值

    然后你的供应商建立一个PLS连接 并不需要包含一个客户端证书 但是 在通过这个连接发送通知之前 供应商需要创建一个认证的token 包含你的团队ID 然后为它签名

    现在就可以通过这个连接发送通知了

    每一个通知消息 在签名后都需要 包含这个认证token

    这个请求还需要包含应用相关的信息

    APNS首先验证 来自服务端的token 然后再处理请求

    如果请求被成功的处理了 APNS就会返回一个 包含成功信息的回应

    如果请求中没有token信息 或者token信息无效 返回的回应会包含一个错误指示信息

    作为一个提醒类型的服务 APNS不会在有错误发生时关闭连接

    现在让我们来看一下 如何生成一个供应商token

    你首先需要配置一个签名键值 在证书、身份 配置下设置(开发者账户中)

    这样产生了一个公共-私有的键值面板 然后这个私有的键就可以使用了 用来当作密码为token数据签名

    Apple会使用对应的公匙 来对token进行效验

    下面让我们来关注下 如何生成token

    上面是一个例子 用来说明 一个JSON Web Token 在参与请求中是什么样子的

    让我们看一下 该JSON Web token结构

    你可以看到它有三个部分 每一个部分都是被 base-64编码过的URL的形式 一段时期内这种形式都不会改变

    下面被解码的部分 代表着该Web token

    第一个部分是header 它包括了一些属性 用来描述了token签名使用的算法 在我们的例子中 使用的是ES256

    它还描述了键的标识符 这个键是用来给token签名的

    claim部分包含了用于效验的数据 那就是你的开发者的团队ID 可以通过你的开发者账户获得

    claim部分中的下一个属性 是一个初始化的时间戳 用来表示时间点

    token的最后一个部分一个签名 通过对一些数据使用了加密算法后 再进行了base-64的编码 这些数据来源于 header以及claim部分 这样避免了任何未授权的干预 来自token

    这里是一个HTTP/2创建的 一个使用token认证的请求

    就像你看到的那样 这个请求包括了一个header区 以及一个数据区 header区由很多 APNS相关的变量组成 现在你可以看到header区了 包含了一个认证header 在“bearer”值 后面是带签名的供应商token

    如果这个带token认证的 请求是有效的 那么回应就会返回一个 200的状态码或者“OK”的信息

    这里可以看到这种回应的结构 如果供应商token是无效的

    会返回403的状态码 或者“禁用”的信息

    现在APNS会要求 周期性的产生新的token

    如果token存在的时间太长 回应同样会 返回403或者“禁用”的信息 并且会指示出token过期了

    APNS会要求token的创建时间 必须在一个小时以内

    但并不是每一个连接都需要 产生一个新的token 实际上处于性能的考虑 我们建议 在token有效的时候 就一直使用它

    所以这里还有一些更多的 关于token认证的细节

    就如之前提到的供应商token 需要周期性的被创建 但是 需要注意 键值“签名”不会失效

    如果你觉得“签名”键值 需要变化 那么可以在开发者账户中撤销它 然后部署一个新的键

    作为一个提醒类型的服务 APNS会长久支持证书认证方式

    并且也会长久支持token认证方式 并且这种token认证方式会 在今年内晚些时候出现

    本次会议的更多的信息请访问页面 developer.apple.com/wwdc16/724

    下面是一些关于 Notification的相关会议 你可能会感兴趣:

    主题为Introduction to Notifications的会议 在周三的上午9点 于Pacific Heights召开 接下来 主题为Advanced Notifications的会议 会在周三的上午10点 于Pacific Heights召开 我们希望到时候还再能看到你们 谢谢大家

Developer Footer

  • 视频
  • WWDC16
  • Apple Push Notification Service 的新功能
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则