From 2d512b9e2d53ed3728696ef2a57c2f33fb04ec4f Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Fri, 24 Jul 2026 10:41:39 -0500 Subject: [PATCH 1/2] Fix sync delegate test crash in Xcode 27 beta. --- Sources/SQLiteData/CloudKit/SyncEngine.swift | 2 +- .../SQLiteDataTests/CloudKitTests/SyncEngineDelegateTests.swift | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Sources/SQLiteData/CloudKit/SyncEngine.swift b/Sources/SQLiteData/CloudKit/SyncEngine.swift index ddcb3f32..2e63698d 100644 --- a/Sources/SQLiteData/CloudKit/SyncEngine.swift +++ b/Sources/SQLiteData/CloudKit/SyncEngine.swift @@ -34,7 +34,7 @@ let foreignKeysByTableName: [String: [ForeignKey]] package let syncEngines = LockIsolated(SyncEngines()) package let defaultZone: CKRecordZone - let delegate: (any SyncEngineDelegate)? + weak let delegate: (any SyncEngineDelegate)? let defaultSyncEngines: @Sendable (any DatabaseReader, SyncEngine) -> (private: any SyncEngineProtocol, shared: any SyncEngineProtocol) 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 From ef3cc191ba1fe1443c71c4eeeebb7d2bf1bbab12 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Fri, 24 Jul 2026 11:50:15 -0500 Subject: [PATCH 2/2] Backwards compat to swift <6.2.3 --- Sources/SQLiteData/CloudKit/SyncEngine.swift | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Sources/SQLiteData/CloudKit/SyncEngine.swift b/Sources/SQLiteData/CloudKit/SyncEngine.swift index 2e63698d..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 - weak 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(