@@ -52,28 +52,31 @@ enum BackgroundSyncService {
5252
5353 /// Register background task handlers. Must be called before app finishes launching.
5454 /// Registration may fail in the Simulator (ESRCH) — failures are non-fatal.
55- @MainActor
5655 static func registerTasks( ) {
57- appRefreshRegistered = BGTaskScheduler . shared. register (
58- forTaskWithIdentifier: appRefreshIdentifier,
59- using: nil
60- ) { task in
61- guard let refreshTask = task as? BGAppRefreshTask else { return }
62- let wrapped = UnsafeSendable ( value: refreshTask)
63- Task { await handleAppRefresh ( task: wrapped. value) }
56+ appRefreshRegistered = MainActor . assumeIsolated {
57+ BGTaskScheduler . shared. register (
58+ forTaskWithIdentifier: appRefreshIdentifier,
59+ using: nil
60+ ) { task in
61+ guard let refreshTask = task as? BGAppRefreshTask else { return }
62+ let wrapped = UnsafeSendable ( value: refreshTask)
63+ Task { await handleAppRefresh ( task: wrapped. value) }
64+ }
6465 }
6566
6667 if !appRefreshRegistered {
6768 logger. warning ( " Failed to register app refresh task — background refresh unavailable " )
6869 }
6970
70- continuedProcessingRegistered = BGTaskScheduler . shared. register (
71- forTaskWithIdentifier: continuedProcessingIdentifier,
72- using: nil
73- ) { task in
74- guard let processingTask = task as? BGContinuedProcessingTask else { return }
75- let wrapped = UnsafeSendable ( value: processingTask)
76- Task { await handleContinuedProcessing ( task: wrapped. value) }
71+ continuedProcessingRegistered = MainActor . assumeIsolated {
72+ BGTaskScheduler . shared. register (
73+ forTaskWithIdentifier: continuedProcessingIdentifier,
74+ using: nil
75+ ) { task in
76+ guard let processingTask = task as? BGContinuedProcessingTask else { return }
77+ let wrapped = UnsafeSendable ( value: processingTask)
78+ Task { await handleContinuedProcessing ( task: wrapped. value) }
79+ }
7780 }
7881
7982 if !continuedProcessingRegistered {
0 commit comments