Hello Apple Developer Technical Support,
I’m following up on case #102807413324 and submitting this as a code-level support request.
We are integrating iOS Live Activities (ActivityKit + WidgetKit extension written in SwiftUI) into an Expo/React Native app. We’re seeing behavior where the Live Activity UI shown on the Lock Screen appears to “stick” to an older layout and ignores updated SwiftUI code and/or bundled assets, even after rebuilding, reinstalling, and removing existing Live Activities before testing again.
Environment
- Device: iPhone 13
- iOS: 26.2
- macOS: 15.7.3 (24G419)
- Xcode: 16.4 (16F6)
- Expo SDK: 52
- React Native: 0.76.9
- expo-live-activity: ^0.4.2
- Build type: Ad-Hoc signed IPA (EAS local build)
Summary
- We have a WidgetKit extension target (LiveActivity.appex, bundle id: stimul8.LiveActivity) using ActivityConfiguration(for: LiveActivityAttributes.self).
- The extension contains multiple SwiftUI views selected via a “route” (derived from deepLinkUrl / title / subtitle), and uses images/backgrounds from the extension asset catalog (Assets.xcassets). We also support loading images from an App Group container with a fallback to the asset catalog.
- After shipping updates, the Live Activity UI shown on the Lock Screen continues to resemble an older/default layout (example: a progress-bar-like element remains visible even after removing ProgressView usage from LiveActivityView.swift). Some custom backgrounds/images also fail to display as expected.
Routing (examples)
- /streak -> StreakLiveActivityView
- /streak-urgent -> StreakUrgentLiveActivityView
- /lesson/create -> AILessonLiveActivityView1
- /lesson/reminder -> AILessonLiveActivityView2
- default -> LiveActivityView
Steps to reproduce (high-level)
- Install/build and trigger a Live Activity.
- Modify the SwiftUI layout in the extension (e.g., remove ProgressView and change obvious UI elements), rebuild, and reinstall.
- Remove any existing Live Activities from the Lock Screen, then trigger a new Live Activity again.
- Observed: Lock Screen Live Activity still renders the prior/older-looking UI and/or ignores updated assets.
Troubleshooting already done
- Verified the extension (LiveActivity.appex) is included in the IPA and properly signed.
- Verified Assets.car is present in the extension and PNG assets are present in the build artifacts.
- Ensured SwiftUI source files used by the extension are overwritten during prebuild so the intended versions are present in ios/LiveActivity.
- Cleared DerivedData related to LiveActivity builds.
- Reinstalled the app and removed existing Live Activities from the Lock Screen before re-triggering new ones.
Questions
- Is there any known caching behavior where Live Activities can continue to display a previous UI layout after an app/extension update, even when the activity is re-created?
- Are there recommended steps to force the system to load the newest widget extension binary/UI beyond reinstalling and removing existing Live Activities?
- What’s the recommended way to confirm which exact extension binary/UI version is being rendered on-device (e.g., specific Console logs, sysdiagnose signals, or other indicators)?
- Are there any known constraints with Assets.xcassets usage for Live Activities that could cause bundled assets not to render even when present?
We can provide
- A minimal reproduction Xcode project (preferred)
- The IPA build
- Build logs (Xcode/EAS)
- Screenshots/video and a sysdiagnose captured after reproduction
Thank you for your guidance.
Best regards