Skip to content

Commit 3bdc43e

Browse files
committed
fix: resolve background task crash and bump build to 17
1 parent b6dc0c1 commit 3bdc43e

2 files changed

Lines changed: 19 additions & 16 deletions

File tree

ios/VaultSync/Services/BackgroundSyncService.swift

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {

ios/project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ targets:
5151
path: VaultSync/Info.plist
5252
properties:
5353
CFBundleShortVersionString: "1.0.2"
54-
CFBundleVersion: "16"
54+
CFBundleVersion: "17"
5555
UILaunchScreen: {}
5656
UIApplicationSceneManifest:
5757
UIApplicationSupportsMultipleScenes: false

0 commit comments

Comments
 (0)