已创建Live Activities但通知中心无法显示问题求助
Live Activities创建成功但通知中心不显示
我已实现Live Activities功能,调用创建接口无报错且能正常生成Activity,但在通知中心无法看到它。开发环境为XCode 15.0 beta 8,测试设备是搭载iOS 17.0的真机。
以下是相关代码及日志信息:
NotificationLiveActivity.swift 完整代码
import ActivityKit import WidgetKit import SwiftUI struct NotificationAttributes: ActivityAttributes { public struct ContentState: Codable, Hashable { var title: String var label: String } var id: String } @available(iOS 16.2, *) struct NotificationLiveActivity: Widget { var body: some WidgetConfiguration { ActivityConfiguration(for: NotificationAttributes.self) { context in Text(context.state.title) } dynamicIsland: { context in DynamicIsland { // Expanded UI goes here. Compose the expanded UI through // various regions, like leading/trailing/center/bottom DynamicIslandExpandedRegion(.leading) { Text(context.state.title) } DynamicIslandExpandedRegion(.trailing) { Text(context.state.label) } DynamicIslandExpandedRegion(.bottom) { Text(context.state.title) } } compactLeading: { Text(context.state.title) } compactTrailing: { Text(context.state.label) } minimal: { Text(context.state.title) } .widgetURL(URL(string: "http://www.apple.com")) .keylineTint(Color.red) } } }
创建Activity的代码片段
func startLiveActivity(title: String, label: String) { let attributes = NotificationAttributes(id: "") let state = NotificationAttributes.ContentState( title: title, label: label ) do { stopwatchActivity = try Activity<NotificationAttributes>.request( attributes: attributes, contentState: state, pushType: nil) NSLog("activity id: \(stopwatchActivity?.id ?? "")") NSLog("description: \(stopwatchActivity?.content.description ?? "")") } catch(let e) { NSLog("error: \(e)") } }
日志截图

期望解决Live Activities在通知中心不显示的问题。
排查与解决建议
- 检查Widget Target配置
- 确认Live Activity对应的Widget Target已正确添加到项目,且部署目标设置为iOS 16.2或更高版本。
- 检查Widget Target的
Info.plist,确保已添加NSWidgetExtensionPrincipalClass键,值为NotificationLiveActivity。
- 修正Activity属性的ID值
- 当前代码中
NotificationAttributes的id传入了空字符串,尝试替换为唯一非空值(如UUID().uuidString),空ID可能导致系统无法正确识别并展示Activity。
- 当前代码中
- 验证设备通知设置
- 打开设备「设置→通知→你的App」,确认「实时活动」权限已开启。
- 检查是否开启了专注模式,避免该模式屏蔽了App的实时活动通知。
- 优化Activity的UI展示
- 主UI闭包中的
Text可能因颜色与背景色一致导致不可见,尝试添加背景色和内边距:ActivityConfiguration(for: NotificationAttributes.self) { context in Text(context.state.title) .padding() .background(Color.systemBackground) .foregroundColor(Color.label) }
- 主UI闭包中的
- 处理XCode Beta兼容性问题
- 清理项目缓存(Command+Shift+K)后重新编译安装;若条件允许,切换到XCode 15正式版测试,Beta版本可能存在已知bug。
内容的提问来源于stack exchange,提问作者iamdipanshus
相关产品推荐
相关产品推荐

