diff --git a/Sources/SQLiteData/CloudKit/SyncEngine.swift b/Sources/SQLiteData/CloudKit/SyncEngine.swift index ddcb3f32..93d74960 100644 --- a/Sources/SQLiteData/CloudKit/SyncEngine.swift +++ b/Sources/SQLiteData/CloudKit/SyncEngine.swift @@ -34,7 +34,11 @@ let foreignKeysByTableName: [String: [ForeignKey]] package let syncEngines = LockIsolated(SyncEngines()) package let defaultZone: CKRecordZone - let delegate: (any SyncEngineDelegate)? + #if compiler(<6.2.3) + weak var delegate: (any SyncEngineDelegate)? + #else + weak let delegate: (any SyncEngineDelegate)? + #endif let defaultSyncEngines: @Sendable (any DatabaseReader, SyncEngine) -> (private: any SyncEngineProtocol, shared: any SyncEngineProtocol) @@ -945,6 +949,14 @@ } } + #if compiler(<6.2.3) + @available(iOS 17, macOS 14, tvOS 17, watchOS 10, *) + extension SyncEngine: @unchecked Sendable {} + #else + @available(iOS 17, macOS 14, tvOS 17, watchOS 10, *) + extension SyncEngine: Sendable {} + #endif + extension PrimaryKeyedTable { @available(iOS 17, macOS 14, tvOS 17, watchOS 10, *) fileprivate static func createTriggers( diff --git a/Tests/SQLiteDataTests/CloudKitTests/SyncEngineDelegateTests.swift b/Tests/SQLiteDataTests/CloudKitTests/SyncEngineDelegateTests.swift index 395be01e..c8e410e9 100644 --- a/Tests/SQLiteDataTests/CloudKitTests/SyncEngineDelegateTests.swift +++ b/Tests/SQLiteDataTests/CloudKitTests/SyncEngineDelegateTests.swift @@ -15,7 +15,6 @@ @MainActor final class SyncEngineDelegateTests: BaseCloudKitTests, @unchecked Sendable { @available(iOS 17, macOS 14, tvOS 17, watchOS 10, *) - @Test($syncEngineDelegate.set(MyDelegate())) func accountChanged() async throws { try await userDatabase.userWrite { db in