用途:AlarmKit 用于在 iOS 26+ / iPadOS 26+ 上实现醒目的闹钟与倒计时,界面出现在锁屏、灵动岛和 Apple Watch,并自动覆盖专注模式与静音模式。它基于 Live Activities,每个闹钟生成一个系统托管的 Live Activity,通过 AlarmAttributes 与 AlarmPresentation 配置展示,而非自建组件视图。
主要能力:支持固定时间、相对时间与按周重复的闹钟调度;支持带 preAlert/postAlert 阶段的倒计时;闹钟状态包括 scheduled、countdown、paused、alerting,可通过 alarmUpdates 异步序列观察变化;提供 cancel、pause、resume、stop、countdown 等操作;支持停止与次要按钮(贪睡或自定义意图)。
使用方式:在 Info.plist 添加 NSAlarmKitUsageDescription;调用 AlarmManager.shared.requestAuthorization() 请求授权;配置 AlarmPresentation(alert、countdown、paused);创建 AlarmAttributes;用 AlarmManager.AlarmConfiguration 构建 .alarm 或 .timer;通过 AlarmManager.shared.schedule(id:configuration:) 调度;使用倒计时展示时需添加 widget extension 目标。
适用场景:起床闹钟、定时提醒、烹饪与运动间隔计时等需要系统级强提醒的场景。
限制:需要 iOS 26+ / iPadOS 26+;未授权时闹钟会静默失败;计时器为一次性,重复需用 .alarm;使用倒计时展示时缺少 widget extension 可能导致系统提前关闭闹钟;AlarmMetadata 会随 Live Activity 序列化,应保持轻量;stopIntent 实际不可为 nil;需处理 maximumLimitReached 错误;真机与模拟器的声音振动表现不同。完整代码模式见 references/alarmkit-patterns.md。