macOS SDK 的新功能

macOS SDK 是用于为 Mac 构建 app 的工具包,了解其中的关键技术和功能。要详细了解最新发布版本 (包括每个 beta 版本) 中的具体 API 更改,请参阅 macOS 发布说明 (英文)

macOS 12 SDK

macOS 12 SDK 能帮助您构建各种方便用户沟通互动的 app。同播共享让您能更方便地打造全新的共享体验——无论是开发提供共享播放体验的流媒体 app,或是支持全球用户同时编辑的协作设计工具,一切都是那么轻松。同时,Metal 中的强大新功能也为游戏和专业 app 打开了一个全新的维度。而 RealityKit 中的物体捕捉则可帮助您以前所未有的速度来利用照片创建 3D 模型。

同播共享和群组活动

同播共享可帮助用户以全新方式分享您的 app。流媒体 app 可以利用新的群组活动 API 支持用户共享内容,为用户带来高保真视频,同时所有同步工作均由系统负责处理。对于流媒体之外的共享体验,GroupSessionMessenger API 提供了安全的数据通道,让您的 app 能够在多个用户之间,同步他们各自在您 app 内的不同实例。

查看文档 (英文)

SwiftUI

SwiftUI 提供了多项新的功能,例如改进的列表视图、更好的搜索体验,以及对控制专注模式的支持。有了新的画布 API 这个 drawRect 的现代 GPU 加速替代方案,将能大大提高您对底层绘制语言的控制。而借助新的辅助功能表示 API,您的自定控件即可轻松继承现有标准 SwiftUI 控件的完整辅助功能支持。

进一步了解 SwiftUI

Metal

为了帮助您管理更加复杂的着色器代码并同时完成更多工作,Metal 添加了一套出色的高级 GPU 调试工具和新功能,助您充分发挥图形代码的潜力。新功能包括增强的图形与计算集成、函数拼接、光线追踪更新,以及 GPU 加速机器学习训练等。

进一步了解 Metal

Mac 版 TestFlight

今年晚些时候,您将能够在 Mac App Store 上发布 app 之前,先邀请测试员试用该 Mac app 并提供宝贵的反馈意见。

进一步了解 TestFlight

Mac Catalyst

macOS 12 SDK 为使用 Mac Catalyst 构建的 app 带来全新和改进的多款 API,帮助您在窗口的标题栏中显示弹出式按钮、工具提示和副标题。您还可以提供触控替代选择、键盘导航和 Siri 意图支持,支持用户随时随地使用 Command-P 进行打印,以及更多便捷功能。这些功能中有许多也适用于在搭载 Apple 芯片的 Mac 上运行的 iPad 和 iPhone app。

进一步了解 Mac Catalyst

快捷指令

功能强大的快捷指令即将登陆 macOS,这些名为“操作”的构建块能够让您的 app 功能更加丰富。不论您的 app 是使用 Mac Catalyst 还是 AppKit 构建的,您都可以在 macOS 上构建快捷指令操作,甚至 app 本身也能运行快捷指令。

进一步了解 Siri

辅助功能

辅助功能框架推出了音频图,这是一种展示图表中数据的新方式,旁白功能可借此构建音频并朗读数据。这个框架还添加了一个 API,用于查询与 MFi 助听设备相关的信息,例如流媒体偏好设置、流媒体功能和配对的助听设备。

查看音频图文档 (英文)

查看助听设备支持文档 (英文)

物体捕捉

利用 RealityKit 2 中的物体捕捉,可以将 iPhone 或 iPad 中的一系列 2D 图像转换为如照片般逼真并针对增强现实进行优化的 3D 对象。借助这个全新的 macOS API,您可以利用先进的摄影制图软件制作独特的 3D 模型,而无需具备任何 3D 建模专业知识。

进一步了解 RealityKit

机器学习

Create ML

Create MLCreate ML API 和 Xcode 附带的开发者工具添加了 Hand Pose 和 Hand Action 分类器任务。这些分类器能够分别识别静态图像中的手部位置和视频中的手部运动。

查看 MLHandPoseClassifier 文档 (英文)

查看 MLActionClassifier 文档 (英文)

查看 Create ML 文档 (英文)

Core ML

Core ML 增添了 ML Packages,这是一种十分具有前瞻性的全新模型格式,让开发者不仅能够灵活编辑元数据,还能使用源控制查看并跟踪具体更改。此外,Core ML 还增添了 ML Programs,这是一种全新的模型类型,该模型能够提高编译效率,使模型的架构与其权重分离,并能提高对中间张量计算精度的控制。借助新的 MLShapedArray API,您可以使用惯用的 Swift 处理多维数据,从而提升代码的类型安全性和可读性。

查看“将模型文件更新为模型包” (英文)

查看 MLShapedArray 文档 (英文)

表格数据。利用表格数据,您可以通过编程方式轻松导入 JSON 和 CSV 文件中的信息,还能为 Core ML、Create ML 或您的自定解决方案准备数据集。您可以根据自身需求,使用表格数据的中心 DataFrame API 对表格数据的行与列执行排序、合并、分组、分拆、编码、解码、分解、筛选、分切、组合和转换操作。

查看表格数据文档 (英文)

查看 DataFrame 文档 (英文)

声音分析。声音分析增添了一个新的声音分类器,让您的 app 可以识别实时音频或音频文件中的 300 多种独特的声音。借助一个新的时间窗口持续时间 API,您可以比照时间精度来调节预测准确性。

查看文档 (英文)

适用于搭载 M1 的 Mac 的键盘与鼠标替代操作

需要触控输入或游戏手柄的 iPhone 和 iPad 游戏可以将预构建的键盘、鼠标和触控板支持用作替代操作。

GameKit

GameKit 提供了全新的方式,让用户能更轻松地发现和邀请玩家参与游戏。玩家现在可以邀请联系人、信息群组成员,或通过电话号码或电子邮件地址邀请任何人。玩家可以查看其他玩家接收和接受邀请的状态,还可以选择先从最少数量的玩家开始游戏,同时等待其他人的加入。

查看文档 (英文)

StoreKit 2

StoreKit 的全新 App 内购买项目 API 提供了一种简单而强大的方式,让您的 app 可以安全地处理各种产品和交易。这个新 API 可以利用并发编程支持等现代 Swift 功能来简化 app 内购买项目工作流程。其经过加密签名的交易和订阅信息采用 JSON Web Signature (JWS) 格式,可以在客户端上安全简便地进行解析。新的授权 API 可用于轻松确定您的 app 应该为用户解锁哪些内容和服务。这个新的 StoreKit API 可在整个 app 内购买项目流程中使用,包括显示 app 内购买项目信息、管理内容的访问权限,以及在 app 内提供客户服务等。

查看 StoreKit 文档

查看 App 内购买项目文档

Apple Pay

在您的 Apple Pay 交易中添加优惠券、延期付款、重复付款、发运日期和只读取货地址等,为用户提供更多选择。

查看“在您的 app 中提供 Apple Pay” (英文)

查看网页版 Apple Pay 文档 (英文)

ShazamKit

借助音频识别,让您的 app 体验更精彩丰富。将音乐与 Shazam 庞大乐库中的数百万首歌曲进行匹配,或者通过使用视频和播客等来源中的音频来创建您自己的自定义乐库,从而轻松识别任何预录制的音频。

进一步了解 ShazamKit

CloudKit

CloudKit 的构建充分利用了 Swift 5.5 中新的 async/await 支持,让异步 API 的易用性和可配置性都有显著提升。CloudKit 添加了记录区共享 (英文),它在现有的共享架构基础上更进一步,让用户能够与其他 iCloud 用户共享一个记录区域中的完整内容。您现在可以在 CKRecord 上使用新的 API 来加密记录的值 (英文),从而为用户提供可靠的隐私保证。利用新的 CloudKit 模式语言 (英文),您可以检索和上传 CloudKit 模式的文本表示,这意味着您现在可以使用用于 app 源代码的相同工具对它进行版本控制。

查看 CloudKit 文档 (英文)

CloudKit Console。CloudKit 推出了全新 CloudKit Console 和 cktool 命令行界面,助您改进工作流程。CloudKit Console 是一个直观的网页控制面板,可供您在 app 的整个开发生命周期内使用。

进一步了解控制台 (英文)

Core Data。Core Data 提供了新的 API,有助于与其他 iCloud 用户共享托管对象,特别是由 CloudKit 支持的永久性存储。另外,您现在可以选择先加密实体的属性,再将它们存储到 iCloud。聚焦集成也得到了增强,可通过额外的 API 来精细地控制何时将哪些数据添加到索引中。

查看 Core Data 文档 (英文)

虚拟会议扩展

提供虚拟会议服务的 app 可以使用 EventKit 中的这个新 app 扩展,直接整合到用户的日历日程中。您将能够提供日程的自定地点、方便用户一键加入会议的链接,以及拨号详情等其他信息。

查看文档 (英文)

macOS 11

借助 macOS 11 SDK,您的 app 可以利用重新设计的用户界面、通知中心里的小组件以及新的 SwiftUI 布局。机器学习技术为准备好接受训练的模型添加了样式转换和动作分类,并提供了基于 CloudKit 的部署解决方案。计算机视觉 API 的新增功能可帮助您的 app 更全面地分析图像和视频。您可以在电子邮件和网站中添加标记,帮助 Siri 日程建议来呈现您的日程。此外,Safari 浏览器增加了网页扩展来进一步自定浏览体验,而屏幕使用时间现在可以将其他浏览器的网页使用数据纳入统计范围。

全新用户界面

macOS 11 推出了重新设计的用户界面,不仅增强了可用性和易用性,而且提高了与 iPadOS 的一致性。对于现有的 macOS app,如果 app 使用系统提供的控件,大多数都会自动采用新的外观。如果您的 app 采用自定义外观,请访问“macOS Human Interface Guidelines (英文)”,了解如何更新您的 app,使其仍然能够为用户呈现精美的外观。

AppKit 带来了多种界面元素变化,包括提醒、浏览器、按钮、菜单、搜索栏、分段控件以及工具栏。有关详细信息,请参阅“AppKit 发布说明 (英文)”。

App Store 隐私信息

隐私保护是整个 macOS 体验的核心所在,而 Mac App Store 中新增的隐私处理信息展示功能可帮助用户更清晰地了解个人信息的处理方式,并更好地掌控他们的个人信息。今年晚些时候,Mac App Store 将帮助用户了解所使用 app 的隐私做法,为此,您需要在 App Store Connect 中输入您隐私做法的详细信息,该信息会在您的 Mac App Store 产品页面上显示。

小组件

小组件让用户可以在 macOS 通知中心一目了然地快速、及时查看来自 app 的信息。macOS 11 提供了重新设计的小组件体验。您的 app 能够以不同的尺寸呈现小组件,这些小组件支持用户自定,可加入互动功能,还能在适当的时候更新内容。要了解有关设计小组件的信息,请参阅“Human Interface Guidelines (英文)”。要了解如何在 app 中支持小组件,请参阅 WidgetKit (英文) 框架。

Mac Catalyst

通过 Mac Catalyst 构建的 app 会自动采用 macOS 11 的全新外观,并充分利用 Mac 的原生屏幕分辨率。macOS 11 包含多个针对键盘、菜单、工具栏、颜色面板等的全新和改进 API,让您可以更好地控制 app 的外观和行为。要了解如何完全控制界面上的每个像素以及 Mac 特有的控件,例如下拉菜单和复选框,请参阅“为您的 Mac App 选择一个用户界面习惯用法 (英文)”。要进一步了解如何构建 iPad app 的 Mac 版本,请参阅 Mac Catalyst (英文) 文档。

机器学习

macOS 11 中的更新能有效地帮助您的机器学习 app 实现新的功能以及更好的灵活性和安全性。Core ML 增加了模型部署和一个仪表盘,以便利用 CloudKit 托管和部署模型,如此一来,您无需更新 app 或自己托管模型,也可以轻松地更新模型。Core ML 模型加密为您的模型额外增加了一层安全保障,为您处理加密过程和密钥管理。Core ML 转换器支持直接将 PyTorch 模型转换为 Core ML。

Create ML app 新增的样式转换模板能够对照片和视频进行实时样式化处理,而新增的动作分类模板可以对视频片段中单个人物的动作进行分类。对象检测和文字标记模板具有新的迁移学习选项,可以在训练数据有限的情况下验证模型的准确性。训练控制可帮助您探索模型并在模型训练期间与它们交互。ML Compute 能利用 GPU 来加速 Mac 上的训练。有关更多信息,请参阅 Core MLCreate MLML Compute (英文) 开发者文档。

计算机视觉

macOS 11 中,计算机视觉框架增加了多个 API,可实现视频中的轨迹检测、图像和视频中手和身体的姿态预测,以及用来跟踪图像和视频中物体边缘及特征的轮廓检测,还有用于定义连续视频帧之间运动模式的光流处理。要进一步了解这些功能,请参阅计算机视觉 (英文) 框架文档。特别值得一读的是“构建功能丰富的运动分析 App (英文)”,可帮助您通过示例 app 了解这些功能是如何整合在一起的。

自然语言

自然语言框架新增了一个 API,可提供语句嵌入功能,用于为任意字符串创建矢量表示;支持文字标记功能,用于训练为特定领域定制的自然语言分类模型;还可提供置信度分数,用于对框架预测进行评分。有关更多信息,请参阅自然语言 (英文) 框架文档。

SwiftUI

SwiftUI 提供了一系列新的内置视图,包括进度指示器和文本编辑器。它还支持新的视图布局,如网格和大纲。网格和全新惰性版本的堆叠 (Stack) 只在需要时加载项目。

Xcode 12 开始,您现在可以使用 SwiftUI 来定义整个 app 的结构和行为。您可以借助各种场景来编写 app,利用场景包含的视图层次结构定义 app 的用户界面。您可以在您的所有 app 中添加菜单命令、处理生命周期事件、调用系统操作,以及管理储存空间。通过将 WidgetKit 整合到 app 中,您还可以创建小组件,让用户可以直接在 iOS 主屏幕上或 macOS 通知中心里快速访问重要的内容。有关更多信息,请参阅“App 结构和行为 (英文)”。

Safari 浏览器网页扩展

用户可以通过添加扩展来自定 Safari 浏览器的新功能和特性。您现在可以利用 Safari 浏览器内的 Safari 浏览器网页扩展 (英文) 并使用迁移工具,轻松地将其他浏览器中的常用扩展迁移到 Safari 浏览器。Safari 浏览器扩展还为用户提供了隐私控制,他们可以决定哪些站点能够使用扩展,并且可以为这些站点授予只有一次、为期一天或始终可用的访问权限。Mac App Store 的全新“扩展”类别、编辑选荐和热门榜单中都着重介绍了 Safari 浏览器扩展。

App 内购买项目的家人共享

家人共享是用户与所有家庭成员分享订阅内容、购买项目等内容的简单方式。在 macOS 11 中,您可以选择针对用户的 app 内购买项目和订阅内容提供家人共享,这样用户的全家人都可以获享额外的益处。请参阅 SKProduct (英文)SKPaymentTransactionObserver (英文),以了解有关这些全新 API 的信息。

统一类型标识符

使用新的统一类型标识符 (英文)框架可以描述用于传输的文件格式和内存数据,如粘贴板;此外还可以标识资源,如目录、宗卷和数据包。

辅助功能

利用全新辅助功能 (英文)框架,您的 app 可以根据具体情境,以动态方式向用户提供一小部分无障碍内容。

文件压缩

使用新的 Apple Archive (英文) 框架可以在 macOS 中对目录、文件和数据执行快速、多线程的无损压缩。

屏幕使用时间

macOS 11 内置屏幕使用时间 API,用于共享和管理网页使用数据,以及观察父母或监护人做出的更改。有关更多详细信息,请参阅屏幕使用时间 (英文) 框架文档。