Hi all, very new "developer" trying to build my own app. The app works, just trying to improve it.
I’m implementing a Live Activity in a widget extension (Swift/SwiftUI) for an app built with Flutter as the host app. ActivityKit is functioning correctly—activities start, update, and end normally, and the widget extension receives all state updates.
However, the Live Activity UI renders as a completely black capsule (both compact and expanded Dynamic Island, as well as the Lock Screen presentation). The system shows the Live Activity container, but none of the SwiftUI content displays.
Verified so far:
ActivityAttributes contains at least one stored property (previously empty).
ContentState fully Codable + Hashable.
All Dynamic Island regions return visible test UI (Text/Image).
No .containerBackground() usage.
Added explicit .activityBackgroundTint() + system foreground colors.
All Swift files included in widget extension target.
No runtime errors, no decode failures, no SwiftUI logs.
Widget previews work.
Clean build, app reinstall, device reboot.
Entitlements and Info.plist appear valid.
Problem:
The widget extension returns a completely black UI on-device, despite valid SwiftUI content in ActivityConfiguration. The Live Activity “shell” renders, so the activity is recognized, but the widget’s view hierarchy is visually empty.
Question:
Under what conditions would a widget extension produce a black, empty UI for a Live Activity even when ActivityKit, previews, and the SwiftUI layout are correct? Are there known cases where:
Widget extension Info.plist misconfiguration,
Incorrect background/tint handling,
Rendering issues in Dynamic Island,
Host app integrations (Flutter),
Or extension isolation issues
cause valid SwiftUI to fail to render in a Live Activity?
Any guidance on deeper debugging steps or known system pitfalls would be appreciated.