AccessoryLiveActivities: session.liveActivities is always empty and activityUpdated is never called
Hi Apple,
I'm implementing an accessory using AccessorySetupKit, AccessoryTransportExtension, AccessoryNotifications, and AccessoryLiveActivities.
My notification forwarding implementation works correctly, but Live Activity forwarding does not deliver any Live Activity to the Data Provider extension.
Environment
- iOS 26.6
- Xcode 26.6
- iPhone
- Bluetooth accessory
AccessorySetupKitAccessoryTransportExtensionAccessoryNotificationsAccessoryLiveActivities
The final signed Data Provider extension contains the required:
<key>com.apple.developer.accessory-data-provider</key>
<true/>
The Data Provider extension's Info.plist contains:
AccessoryNotifications.NotificationsForwarding and AccessoryLiveActivities.LiveActivityForwarding.
My Data Provider is:
@main
struct DataProvider: AccessoryDataProvider {
var extensionPoint: AppExtensionPoint {
Identifier("com.apple.accessory-data-provider")
Implementing {
NotificationsForwarding {
NotificationHandler()
}
LiveActivityForwarding {
LiveActivitiesHandler()
}
}
}
}
Notification Forwarding works correctly
The Notification Forwarding side is working end-to-end.
The notification lifecycle callbacks are actually delivered to the extension:
func addNotification(_ notification: AccessoryNotification)
func removeNotification(_ notification: AccessoryNotification)
So the Data Provider extension itself is loading correctly, and the Notification Forwarding session is receiving notification lifecycle events normally.
Live Activity Forwarding
The Live Activity forwarding handler is also created and activated successfully.
I see:
LiveActivityForwarding factory
↓
LiveActivitiesHandler init
↓
activate(for:)
However, session.liveActivities is always empty:
liveActivities = []
Existing Live Activity test
I tested with a Live Activity that was already active and visible on the iPhone before launching my companion app.
The existing Live Activity is not present in session.liveActivities.
New Live Activity test
I also tested the opposite order.
The forwarding session is already active:
activate(for:)
Then I start a new Live Activity from another app.
The Live Activity appears normally on the iPhone, but:
activityUpdated(_:)
is never called.
And:
activityUpdatedForAlert(_:)
is also never called.
The observed behavior is consistently:
LiveActivityForwarding factory ✅
LiveActivitiesHandler init ✅
activate(for:) ✅
session.liveActivities []
Start Live Activity ✅
Live Activity visible on iPhone ✅
activityUpdated(_:) ❌
activityUpdatedForAlert(_:) ❌
Question
Why does session.liveActivities remain empty even when there is an active Live Activity on the iPhone?
And when a new Live Activity is started while the LiveActivityForwarding session is already active, why are activityUpdated(_:) and activityUpdatedForAlert(_:) never called?
Thanks!