After updating Xcode and SDK to 26.4, I'm now getting an concurrency error when trying to update or end live activities with the following code that built successfully before:
// Get list of active activities
let allActivities = Activity<ArbeitszeitWidgetAttributes>.activities
// Cancel all active activities
Task {
for activity in allActivities {
await activity.end(nil, dismissalPolicy: .immediate)
}
}
Sending 'activity' risks causing data races.
Sending main actor-isolated 'activity' to @concurrent instance method 'update' risks causing data races between @concurrent and main actor-isolated uses
I'm currently using
nonisolated(unsafe) let activity = activity
await activity.end(nil, dismissalPolicy: .immediate)
to get it to compile again. What's the best approach here?