View in English

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

快捷链接

5 快捷链接

视频

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

返回 WWDC19

  • 简介
  • 转写文稿
  • Core Bluetooth 新功能

    了解如何采用 Core Bluetooth 中的隐私增强变更。探索与 LE 2Mbps、广告扩展、BR/EDR 和双模式设备相关的新可能性。学习如何利用 PacketLogger 的功能改进来调试 Core Bluetooth 通信。

    资源

    • Using Core Bluetooth Classic
      • 高清视频
      • 标清视频
    • 演示幻灯片 (PDF)

    相关视频

    WWDC19

    • 为保护隐私而设计
  • 搜索此视频…

    感谢你们来参加这次会议 我叫 Duy Phan 我和 Yilok 和 Meghna 在这里 和你们探讨 Core Bluetooth 的新功能 我将从介绍开始 然后说说 LE 2 Mbps 和广告扩展 接着提供 BR/EDR 设备的 Core Bluetooth 概述 再是将 Core Bluetooth 用于 双向模式 用户隐私 开发人员工具 最后总结一下 让我们从介绍开始 对于 Core Bluetooth 的新用户来说 Core Bluetooth 框架 是我们对蓝牙低功耗规范 和硬件的抽象 我们为开发人员提供了 一种简单而强大的方法 来开发可与蓝牙 低功耗设备交互的 App 自从引入 该框架以来 我们已经看到了 大量的附件和 App

    我们已经看到了 从健康和健身设备 到室内定位和物品寻找 再到创意工具 儿童玩具和配件 家居用品 家用电器 甚至蓝牙控制的 水瓶和杯子等日常用品 我们的开发人员的 创造力和辛勤工作 确实使蓝牙降低了 所有生态系统非常充满活力 和创新的空间 谢谢

    但我还有其它要说的有一整类 蓝牙设备也在 蓬勃发展和增长 但我们在这里 通常不会谈论它们 因为它们不支持 Core Bluetooth 框架 它们是蓝牙 BR/EDR 设备 它们也包括了 00:01:56.046 --> 00:01:57.316 A:middle 你们喜欢的音频流设备

    带免提通话的 车载娱乐系统 以及鼠标键盘 和游戏手柄 等各种器件等配件 缺少的是我们的 Core Bluetooth 开发人员开发 可以与这些设备 交互的 App 的方法 直到现在 今年我们正在为 BR/EDR 设备添加 Core Bluetooth 支持 谢谢你们 这意味着 无论运行何种传输 Core Bluetooth 现在都可以与 你们喜爱的所有蓝牙设备 进行联系并进行交互 此外 我们还增加了 各种双模功能 因此两种传输方式在一起 运行时效果更好 我们希望我们的开发人员 能够利用这些功能 我们期待看到 你们构建的 所有新配件和 App 所以 今年我们确实有 三个主要的推动主题 首先 一如既往地 改进我们的核心技术 同时保护我们的用户隐私

    并为我们的开发人员提供更好的工具

    让我们开始改进 我们的核心技术 和 LE 2 兆位 LE 2 Mbps 是蓝牙 5.0 的新功能

    在兼容设备之间 物理层速率或无线电速率 现在可以从 1 Mbps 增加到 2 Mbps

    这意味着 使用相同数量的通话时间 Core Bluetooth 现在可以 传输两倍的位数 因此你们的连接不仅更快 而且功效更高

    这对 App 来说更好 同样也更易懂 我们将根据你们 所在的平台为你们处理 所有链路层协商 但请记住 如果你们正在开发配件 你们的配件也必须 支持 LE 2 Mbps 才能工作

    现在从 iPhone 8 iPhone 8 Plus iPhone X Apple TV 4K 和 Apple Watch Series 4 开始提供 这里我以各种模式 说明蓝牙 1 Mbps 我已经添加了 LE 2 Mbps 来展示 谢谢 来展示性能上的飞跃

    今年同样新颖的一点是 我们增加了广告延伸

    广告扩展是 蓝牙 5.0 功能

    它基本上改善了 广告的三个要点 第一个是通过 在广告信道上 发送较小的有效载荷 然后跳到更宽敞的 数据信道以传输更大的 有效载荷 从而减轻 三个广告信道的拥塞情况 现在从 31 到 255 字节 传输速率本身现在 可以是 LE 2 Mbps

    Core Bluetooth 将支持 今年的扩展扫描

    这意味着我们现在可以 扫描我刚刚提到的 扩展广告 但我们只扫描 以 LE 2 Mbps 传输的 扩展广告 因此 如果你们正在开发配件 你们的配件还必须 支持 LE 2 Mbps 的 扩展广告

    我们现在支持 最多 124 字节的扩展广告有效载荷 这是一个配件今天 可以发送给我们的 广告数据量的四倍 这对你们的 App 来说一样是易懂的 你们可以使用相同的扫描 API 扫描过滤器 我们会扫描遗留广告 和扩展广告 有一个新的 API 可供 你们以编程方式 查询平台支持 现在 iPhone XS 和新的 iPad Pro 也支持此功能 今年还有一点创新就是 我们将支持扩展连接

    这意味着我们 可以连接到可连接的扩展广告

    扩展连接改进了 现有的连接交换协议 我将解释是如何改进的 今天 通过 Legacy Connections 广告商将宣传 可连接的广告

    如果想要连接 扫描仪将发送 连接标识 对此没有应答和确认

    扫描仪认为 连接指示到达了广告商 然后它唤醒主机处理器 告诉它有一个新的连接 但是连接指示 实际上可能无法 到达广告商 因为扫描仪和广告商的 RF 特性可能不同 并且 RF 环境是非常动态的 因此 在这一天中 你们的整个处理器 可能会被不必要地唤醒 在你们使用时更多地 训练你们的手机电池 你们的用户正在使用你们的 App 或配件 但扩展的连接在这方面有所改进 通过扩展连接 广告商会使用 可连接的扩展广告 扫描仪将发送一个连接请求

    广告商将发送 明确的连接响应 并且只有当扫描器 收到此连接响应时 它才会唤醒主处理器 以告知它有新的连接 此外 你们的连接 也可以从 LE 2 Mbps 开始 跳过一些链路层协商 正因为此 扩展连接更加强大 功能也更高 如果你们可以调用相同的连接 API 那么它对你们的 App 也是易懂的 它将连接到 Legacy 和 Extended Advertisements 但请记住 如果你们正在开发配件 你们的配件还必须支持 可连接的扩展广告 有一个新的 API 可供你们 以编程方式查询 平台支持 iPhone XS 和新款 iPad Pro 现在也可以使用 我现在想把它交给 Yilok 谈谈 BR/EDR 的 Core Bluetooth 支持 谢谢大家

    多谢了 Duy 大家好 我是 Yilok 我在这里向你们介绍 我们为 BR/EDR 设备的 Core Bluetooth 添加的新内容 当我们在 2012 年首次引入 Core Bluetooth 时 我们想要为你们创建 一个抽象层来使用 所谓的 GATT 那么 GATT 是一种基于 层次结构的 蓝牙 SIG 协议 它包括服务和特性 并且它使得读取 写入和通知这些特征的 变化变得非常容易 你们向我们展示了 制作心率监测器 玩具和一系列配件等世界上的优质产品 极其容易 很高兴看到你们通过构建的 与这些配件进行交互的 Core Bluetooth App 能做的一切 现在 正如 Duy 所提到的 今年我们正在为 BR/EDR 设备或传统设备 添加对 Core Bluetooth 的支持 现在这些设备包括 汽车头部装置 扬声器和耳机等 那么 我们怎么做到的呢 好吧 是我们去年的堆栈包括 两种不同的传输方式 基本上 我们在系统中 运行系统配置文件 或诸如音频 A2DP HFP 和 远程控制配置文件之类的东西 另一方面 对于低能耗 我们在 GATT 上运行 Core Bluetooth 这就是你们用来 与配件连接的框架 今年 我们将这两个层 合并在一起 现在 你们可以轻松地访问 BR/EDR 且低能耗 无需做任何事情 现在 这对你们来说意味着 没有太多的 API 变化 你们现在可以使用 经典设备和低能耗设备

    那么我们来看看 BR/EDR 的 Core Bluetooth 的细节 现在 这将允许 GATT 与 BR/EDR 设备的透明使用

    它仍然运行完全相同的 蓝牙 SIG 协议 这没有任何变化 因此你们可以 在 Bluetooth SIG 网站上 在线查看此规范 对于你们的 App 和开发人员 CBPeripheral API 完全相同 你们仍然可以执行 相同的服务发现 并收到有关特征 更改的通知 CBCentralManager 有一个新的变化 00:10:53.756 --> 00:10:56.796 A:middle 当设备与服务 IUD 或已知的外围设备

    UID 连接时 我们为你们 提供了一种通知方式 我稍后会 详细介绍 适用于 BR/EDR 的 Core Bluetooth 可用于我们本周 发布的 iOS 13 watchOS 和 tvOS 最后 由于 GATT 是 一种软件层协议 你们可以在不需要 新硬件的情况下 为附件添加支持 这意味着只需更新 软件或固件 现在让我们来看看新的 API 要注册 ConnectionEvents 你们要通过已知服务 或已知外围设备 UID 进行注册 这类似于心率服务 你们会调用 registerForConnectionEvents 并且你们将向 CBCentralManager 传递 服务 UID 或外围 UID 的类型

    当我们找到匹配选项时 我们将向你们 发送委托回调 此委托回调将 包括 CB 外围设备 和连接事件的类型 这很简单

    那么 从 App 的角度来看 传入连接 是什么样的呢 你的 App 将实例化 一个 CBCentralManager 通过我们一个已知的服务 UID 如果是 BR/EDR 或经典设备 你们的用户将转到 蓝牙设置并搜索设备 在这种情况下 假设它是一个 耳机运行心率仪 他们将发现设备 定位它并尝试连接 配对将被触发 然后在我们连接后 我们将运行 GATT 服务的 服务发现 如果我们找到你们想要的服务 那么你们将获得委托回调

    现在看起来它与 已经使用了 Core Bluetooth 的人 非常相似 通过委托回调 你们将处理 连接事件 因此你们可以在给定的外围设备上调用 connect 其实 所有这些代码都是这样的 你们将首先进行初始化 使用 CBCentralManager 注册 连接事件 最后处理委托回调 如果你们对该设备感兴趣 请调用 connect 然后你们可以清除过滤器的登记 现在 传出连接 怎么样了 假设你们已经 拥有一个已知的外围设备 你们已与其配对并且你们想要连接

    你们现在可以 连接到 BR/EDR 设备

    为此 你们将执行相同的操作 实例化你们的 CBCentralManager 并调用 connect

    这并不是一个新的 API 它已经在 CBCentralManager 中 存在一段时间了 因此 如果你们在 BR/EDR 设备上调用 connect 如果你们的 App 位于显眼的位置 那么我们将尝试为你们建立 与该设备的连接 我们将呼叫设备 如果已连接 那么你们将获得 一个委托回调就这么简单 因此 既然我们已经完成了 BR/EDR 设备的新 API

    那么让我们继续我们 为 Core Bluetooth 双模进行 做出的其他改进 这意味着当你们一起使用 低能耗和 BR / EDR 时 我们在双模设备上看到

    的一个常见问题是 当你们开发了 越来越多的配件和 App 时 也就是通常当用户使用 你们的设备时 他们会在蓝牙设置中看到两个条目 有一个低能耗的 有一个 BR/EDR 或一个经典的 它有时会让用户感到困惑 因此 我们今年非常努力地 减轻了这种混乱 因此 今年我们正在 采用所谓的 Cross Transport Key Derivation

    这是蓝牙 4.2 SIG 规范 基本上这意味着 通过单个配对 我们将为 其他传输导出链接密钥

    对你们而言 这意味着 设备现在将具有 单个 CBPeripheral 标识符 因此你们无需 关心设备的传输 00:15:04.936 --> 00:15:06.176 A:middle 这对你们的 App

    十分易懂 现在我们有 两个设备的单一配对 这意味着你们的 App 可以 无缝地同时使用低能耗和 BR/EDR 因此 在你们的设备或 App 的用户之前 如果他们看到两个设备 现在他们只会看到一个合并的设备 谢谢大家 另外我们可以进一步 利用 Cross Transport Key Derivation 也就是 CTKD 来改善配对过程 不妨假设你们希望 控制用户的整个发现 和配对体验 你们现在可以 从配件中查找 低能耗广告 而不是让用户进入蓝牙设置 并进行查询扫描 这会留下你们的 App 体验

    如果找到该设备 则可以通过调用 connect 并通过 LE 连接进而访问保护特性

    一旦配对 由于 CTKD 我们将使用 LE 我们也将获得 BR/EDR 密钥 这意味着你们现在可以 建立 BR/EDR 连接 而无需触发更多配对 来混淆用户 并且它可以保留在 App 中以获得整个体验

    很好 既然我们已经 谈到了改进配对 那么让我们谈谈我们如何 改进双模连接 让我们想一下你们想要 计划的新产品 假定它是 一个家庭音频设备 如果你们的用户可能 正在使用你们的 App 并且当用户接近设备时 触发某种连接以使用媒体 例如音乐或播客 那将会非常棒

    因此 你们希望用户提出 类似音乐或播客的内容 这意味着 iOS 必须 为你们提供 所谓的 BR/EDR 频道 今年我们通过引入一种 称为桥接的新概念来实现这一目标

    桥接通过利用 低能量接近来 实现 BR/EDR 配置文件 如 A2DP HFP AVRCP 这适用于所有 支持 CTKD 的设备 并在你们的 App 中利用它 这非常简单

    你们将在 CBManagerConnect 中 使用新密钥 它称为 TransportBridgingKey

    你们要在选项库中添加它 所以当你把它传递给我们时 我们会尝试将低能耗 连接到你的设备上 如果我们找到它 那么 我们将立即通过 BR/EDR 换出页面 并连接尽可能多的配置文件 结果是你们的用户现在 可以无缝地使用 所有多媒体配置文件而无需执行任何操作

    很好 所以 现在我们 已经涵盖了今年我们所做的所有核心技术改进 我现在想把它交给 Meghna 来谈谈 Core Bluetooth 隐私 谢谢你 Yilok 仅去年一年 越来越多的 App 制造了一些新闻 或者被我们从 App Store 把它们撤出 因为其不尊重用户隐私 我今天在这里帮助你们 避免这样的情况在你们的 Core Bluetooth App 上发生

    大家好 我的名字是 Meghna LavMeghna Lav 在接下来的几分钟内 我想向你们介绍关于 Core Bluetooth API 的隐私更新

    隐私很重要 并且今天它比 以往任何时候都重要 我们的用户今天比以往 任何时候都更了解它

    在 Apple 我们认为 隐私是一项基本人权 正如 Tim Cook 所提到的 守护和保卫基本人权 和隐私是我们的共同责任 作为 Apple 生态系统中的 开发人员 你们每天 都会对用户的生活产生深远的影响 因此 用户将他们的数据 信任于你们 与我们一起 你们要承担 维护信任的责任

    今年 我们对 Core Bluetooth 隐私的两个主要领域 用户授权和附件通知 进行了改进 让我们首先谈谈 用户授权及其当前的工作方式

    在 iOS 12 中 如果你们的 App 实例化了 CBPeripheralManager 并希望 在背景上进行广告 我们要求你们需要 获得用户授权 今年新增的是 如果你们的 App 使用任何 Core Bluetooth API 我们也要求你们要 获得用户授权 请务必注意 这也适用于基于 较旧 SDK 构建的 App 当用户做出 此决定时 他们可以 在设置 App 中的 蓝牙隐私窗格或者 甚至在你们 App 特定设置中 对其进行修改 这在 iOS watchOS 和 tvOS 上 都是必需的 那么用户授权对 watchOS 意味着什么 如果你们的 App 作为 watchOS 上的扩展程序运行 则该权限在 iOS 和 watchOS 之间共享 并且用户只需授予 此权限一次

    这当然不适用于 独立的 watchOS App 那么 你们会如何在 你们的 App 中采用用户授权

    首先要做的是打开 App 的 info.plist 并 添加这个新的用法说明字符串

    有三个你们应该添加 此用法说明字符串的原因 首先 你们可以使用它 向用户传达你们的 App 需要访问蓝牙的原因

    其次 它是一个强制性字符串 如果不采用它会 导致 App 启动时崩溃 并且你会在控制台中看到这样的错误 第三 App 审核流程 会审核所有 使用情况说明字符串 以确保它们非空且有意义 那么现在让我们来看看一些代码 我们今年创建了一个新属性 即授权属性 这将告诉你们的用户 是允许还是拒绝 访问你们的 App 以及你们是否检查此授权属性 为此 让我们来 看看 Core Bluetooth App 的流程 在你们的 Core Bluetooth App 中 你们可能 要做的第一件事 是实例化 CBCentralManager 或 CBPeripheralManager 因此 你们将从 蓝牙接收的第一个 委托回调会是 ManagerDidUpdateState 回调 在此 你们可以查看 00:22:18.536 --> 00:22:20.786 A:middle state 的值以查看

    管理器是否已准备好使用

    现在 如果 state 的值 是 CBManagerstate.unauthorized 那么你们可以查看 新的授权属性以 查看用户是否拒绝访问 你们的 App

    因此 如果你的代码今天看起来像这样 你只看一两个 管理器状态的值 我建议你今天 花十分钟时间来 更新你的代码 这样它看起来 更像你看所有 管理器状态的可能值 这也为你们提供了 一个非常平滑的路径 可以在你们的 App 中开始采用用户授权 所有这些代码都将 在示例项目中提供 其详细信息将在 更多 info 会议中提供 哦不 info 部分中提供 抱歉

    现在让我们继续看看附件通知

    Apple 实施 ANCS 或 Apple Notification Center Service 这是一项 GATT 服务器服务 允许你们的配件从 iOS 通知中心 获取系统和 App 通知

    如果你们想了解有关 ANCS 的更多信息 请访问 developer.apple.com 获取详细文档 ANCS 的隐私更新是 现在需要 用户授权才能与 附件共享通知 因此 如果用户更新到 iOS 13 当你们的附件连接 并登入通知时 我们将向用户 显示此权限提示

    用户一旦做出此决定后 他们可以在蓝牙设置中 根据设备特定设置对其进行修改 现在 我们知道 如果在更具上下文 相关性且在你们的 App 中 显示权限提示时 此流程对用户来说 可能会好得多 因此 我们创建了 新的 ANCS 隐私 API 以帮助你们实现这种体验

    在 CBCentralManager 中 如果你们知道 要连接的外围 设备支持 ANCS 则可以 使用此新的 CBConnect 选项

    如果你们这样做 那么在成功连接和配对后 我们将在用户 进入你们的 App 时 向用户显示权限警报 当他们响应 此权限警报时 你们的 App 将 收到一个委托回调 告诉你们 ANCS 授权已更改

    你们可以使用 getter ancsAuthorized 来获取它的值

    因此 我们谈到了 用户授权和 附件通知 但除此之外 你们的 App 可以做很多事情 来成为用户隐私的 良好保管人 我们来看看 Core Bluetooth App 的一些最佳实践

    首先 仅在需要时 以及在与用户相关的 上下文时调用 Core Bluetooth API

    接下来 仅扫描和播放 有限的持续时间 当你们的 App 进行广告宣传时 它实际上是 从用户手机共享信息 并限制你们执行 此操作的持续时间 有助于培养用户信任

    保持扫描过滤器 尽可能具体 并仅查看 App 所投入的 UUID

    最后 让用户了解 App 需要访问 Core Bluetooth 的原因 如果你们这样做 那么用户更有可能做出正确的决定

    如果你们想了解 有关设计隐私 App 的更多信息 我邀请大家查看 今年和前几年 WWDC 会议中 隐私会议的录制会话 因此 在设计和实施 我们的 Core Bluetooth App 时 让我们 主动思考并保护用户隐私

    我现在想把它交给 Duy 来引导你 完成开发工具 谢谢 多谢了 我想与你们讨论一下 我们添加到 Core Bluetooth PacketLogger 的新功能

    对于那些不熟悉 Core Bluetooth PacketLogger 的用户 这是我们为 Apple 开发人员 构建的蓝牙数据包分析 App

    今天 当你们在 iOS 设备上 安装登录配置文件 并触发 sys 诊断时 这个 App 可以打开 里面的小型 PacketLogger 文件 该 App 可以解码 由 Bluetooth SIG 和 Apple 定义的所有协议 而且因为它可以 理解所有这些协议 它还会突出显示错误 以警告你们潜在的问题

    它具有丰富的过滤选项 你们可以按信任连接 或协议进行筛选

    你们可以按文本

    或正则表达式进行搜索 对单个数据包 进行注释和标记 甚至可以

    导出原始数据以供以后分析 这是在深色模式下 顶层的样子 在这个例子中 我只过滤了 ACI 和 ATT 协议

    但你们也可以单击 单击每个数据包并向下 钻取以查看完整的 协议层次结构 并分别检查每个协议 到原始字节中的最低层

    对于今年的新功能 我们添加了一个我们认为 你们真正喜欢的功能 它被称为 Live Capture 这意味着你们现在 可以在 iOS 设备上 安装登录配置文件 将其连接到 Mac 启动 PacketLogger 并从 iOS 设备捕获 实时蓝牙流量到附件 谢谢你们

    你们还可以连接 多个 iOS 设备并捕获实时流量 我们希望这会在你们调试时 为你们提供更多语境 它将使你们的调试 更具互动性 并希望能够帮助你们 更快地解决问题

    现在你们很兴奋 你们会如何设置 Live Capture 呢 你们可以在 iOS 设备上安装 iOS 13 开发人员测试版 安装开发人员 日志记录配置文件 启动 PacketLogger 将 iOS 设备连接到 Mac 在 PacketLogger App 上 选择文件 New iOS Trace 就是这样 你就在现场捕捉了

    谢谢

    你们的 iOS 设备中还有 一个指示器辨认 Live Capture 正在进行中 那么你们如何获得 PacketLogger 呢 你们可以在 Xcode 包的 其他工具中下载 PacketLogger 该链接将在更多 信息页面中提供 PacketLogger 位于 此软件包的硬件文件夹中 为获得最佳性能 请使用 macOS Catalina

    现在让我们总结一下

    在开发你们的配件时 请使用带有最新 蓝牙支架的芯片组 以充分利用所有 新的性能和 功耗优化 如 LE 2 Mbps 和广告扩展 你们现在可以为蓝牙 BR/EDR 设备构建 Core Bluetooth App 我们期待看到 你们构建的所有新 App 和附件

    我们始终保护你们的 用户隐私并守卫他们对 你们的品牌和产品的信任 并利用开发人员测试版的优势 下载测试版并进行测试吧 iOS 的采用率非常高 你们不希望用户 在升级时遇到问题 我们通常有一个小窗口 来提供帮助 因此 如果你们很早 发现问题 你们可以 与我们合作解决问题 也请参阅 Apple 设备的 附件设计指南 我们有一套很好的 指导方针可以告诉你们 如何开发最好的配件 最后 Apple 随时为你们提供帮助 使用反馈 App 与我们联系 以便我们 可以在你们的配件和 App 中协同工作 如果你们有更多问题 请访问 Core 的蓝牙实验室 4 谢谢大家

Developer Footer

  • 视频
  • WWDC19
  • Core Bluetooth 新功能
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习与 AI
    • 开源资源 (英文)
    • 安全性
    • 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. 保留所有权利。
    使用条款 隐私政策 协议和准则