Build Information
Successful build of IceCream, reference 2.1.0 (e1d07b
), with Swift 6.0 for macOS (SPM) on 3 Nov 2024 02:19:15 UTC.
Swift 6 data race errors: 2
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/caiyue1993/IceCream.git
Reference: 2.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/caiyue1993/IceCream
* tag 2.1.0 -> FETCH_HEAD
HEAD is now at e1d07b3 include CreamLocation file to pbxproj
Cloned https://github.com/caiyue1993/IceCream.git
Revision (git rev-parse @):
e1d07b31bd0e1a65b89ac72f629f4df6f6707fd3
SUCCESS checkout https://github.com/caiyue1993/IceCream.git at 2.1.0
Fetching https://github.com/realm/realm-cocoa
Fetching https://github.com/realm/realm-core
[1/131076] Fetching realm-cocoa
[15031/383333] Fetching realm-cocoa, realm-core
Fetched https://github.com/realm/realm-core from cache (69.01s)
Fetched https://github.com/realm/realm-cocoa from cache (69.01s)
Computing version for https://github.com/realm/realm-cocoa
Computed https://github.com/realm/realm-cocoa at 4.1.1 (0.97s)
Computing version for https://github.com/realm/realm-core
Computed https://github.com/realm/realm-core at 5.23.6 (0.64s)
Creating working copy for https://github.com/realm/realm-core
Working copy of https://github.com/realm/realm-core resolved at 5.23.6
Creating working copy for https://github.com/realm/realm-cocoa
Working copy of https://github.com/realm/realm-cocoa resolved at 4.1.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "icecream",
"name": "IceCream",
"url": "https://github.com/caiyue1993/IceCream.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/IceCream",
"dependencies": [
{
"identity": "realm-cocoa",
"name": "Realm",
"url": "https://github.com/realm/realm-cocoa",
"version": "4.4.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/realm-cocoa",
"dependencies": [
{
"identity": "realm-core",
"name": "RealmCore",
"url": "https://github.com/realm/realm-core",
"version": "5.23.8",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/realm-core",
"dependencies": [
]
}
]
}
]
}
]
}
Fetching https://github.com/caiyue1993/IceCream.git
[1/4461] Fetching icecream
Fetched https://github.com/caiyue1993/IceCream.git from cache (1.12s)
Fetching https://github.com/realm/realm-cocoa from cache
Fetched https://github.com/realm/realm-cocoa from cache (0.87s)
Computing version for https://github.com/realm/realm-cocoa
Computed https://github.com/realm/realm-cocoa at 4.4.1 (0.65s)
Fetching https://github.com/realm/realm-core from cache
Fetched https://github.com/realm/realm-core from cache (1.01s)
Computing version for https://github.com/realm/realm-core
Computed https://github.com/realm/realm-core at 5.23.8 (0.62s)
Creating working copy for https://github.com/realm/realm-core
Working copy of https://github.com/realm/realm-core resolved at 5.23.8
Creating working copy for https://github.com/caiyue1993/IceCream.git
Working copy of https://github.com/caiyue1993/IceCream.git resolved at 2.1.0 (e1d07b3)
Creating working copy for https://github.com/realm/realm-cocoa
Working copy of https://github.com/realm/realm-cocoa resolved at 4.4.1
warning: '.resolve-product-dependencies': dependency 'icecream' is not used by any target
Found 1 product dependencies
- Realm
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/caiyue1993/IceCream.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/55] Write sources
[1/55] Write swift-version--7754E27361AE5C74.txt
[2/55] Compiling placeholder.cpp
[3/55] Compiling schema.cpp
[4/55] Compiling RLMUpdateChecker.mm
[5/55] Compiling object_schema.cpp
[6/55] Compiling RLMThreadSafeReference.mm
[7/55] Compiling object.cpp
[8/55] Compiling RLMUtil.mm
[9/55] Compiling object_store.cpp
[10/55] Compiling list.cpp
[11/55] Compiling shared_realm.cpp
[12/55] Compiling results.cpp
[13/55] Compiling RLMRealmConfiguration.mm
[14/55] Compiling RLMSchema.mm
[15/55] Compiling RLMPredicateUtil.mm
[16/55] Compiling RLMRealmUtil.mm
[17/55] Compiling RLMProperty.mm
[18/55] Compiling RLMSwiftSupport.m
[19/55] Compiling RLMResults.mm
[20/55] Compiling RLMRealm.mm
[21/55] Compiling RLMOptionalBase.mm
[22/55] Compiling RLMConstants.m
[23/55] Compiling RLMObjectSchema.mm
[24/55] Compiling RLMObjectStore.mm
[25/55] Compiling RLMObservation.mm
[26/55] Compiling RLMObject.mm
[27/55] Compiling RLMObjectBase.mm
[28/55] Compiling RLMMigration.mm
[29/55] Compiling RLMListBase.mm
[30/55] Compiling RLMManagedArray.mm
[31/55] Compiling uuid.cpp
[32/55] Compiling event_loop_signal.cpp
[33/55] Compiling RLMQueryUtil.mm
[34/55] Compiling RLMClassInfo.mm
[35/55] Compiling RLMAnalytics.mm
[36/55] Compiling RLMCollection.mm
[37/55] Compiling index_set.cpp
[38/55] Compiling weak_realm_notifier.cpp
[39/55] Compiling RLMArray.mm
[40/55] Compiling RLMAccessor.mm
[41/55] Compiling thread_safe_reference.cpp
[42/55] Compiling primitive_list_notifier.cpp
[43/55] Compiling object_notifier.cpp
[44/55] Compiling results_notifier.cpp
[44/55] Write sources
[46/55] Compiling binding_callback_thread_observer.cpp
[47/55] Compiling keychain_helper.cpp
[48/55] Compiling list_notifier.cpp
[49/55] Compiling external_commit_helper.cpp
[50/55] Compiling transact_log_handler.cpp
[51/55] Compiling collection_change_builder.cpp
[52/55] Compiling collection_notifications.cpp
[53/55] Compiling realm_coordinator.cpp
[54/55] Compiling collection_notifier.cpp
[56/74] Compiling RealmSwift SortDescriptor.swift
[57/74] Compiling RealmSwift ThreadSafeReference.swift
[58/74] Compiling RealmSwift Results.swift
[59/74] Compiling RealmSwift Schema.swift
[60/75] Compiling RealmSwift Property.swift
[61/75] Compiling RealmSwift Realm.swift
[62/75] Compiling RealmSwift RealmCollection.swift
[63/75] Compiling RealmSwift RealmConfiguration.swift
[64/75] Compiling RealmSwift ObjectiveCSupport.swift
[65/75] Compiling RealmSwift Optional.swift
[66/75] Compiling RealmSwift Object.swift
[67/75] Compiling RealmSwift ObjectSchema.swift
[68/75] Compiling RealmSwift Migration.swift
[69/75] Compiling RealmSwift Nonsync.swift
[70/75] Compiling RealmSwift LinkingObjects.swift
[71/75] Compiling RealmSwift List.swift
[72/75] Compiling RealmSwift Aliases.swift
[73/75] Compiling RealmSwift Error.swift
[74/75] Emitting module RealmSwift
[75/75] Compiling RealmSwift Util.swift
[76/90] Compiling IceCream Notification+Name.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | private var thread: Thread?
[77/90] Compiling IceCream PendingRelationshipsWorker.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | private var thread: Thread?
[78/90] Compiling IceCream ErrorHandler.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/ErrorHandler.swift:113:13: warning: capture of 'block' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | let delayTime = DispatchTime.now() + retryAfter
112 | DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
113 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
114 | })
115 |
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Manifest.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// This file is for setting some develop configs for IceCream framework.
11 |
12 | public class IceCream {
| `- note: class 'IceCream' does not conform to the 'Sendable' protocol
13 |
14 | public static let shared = IceCream()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// There are quite a lot `print`s in the IceCream source files.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/ErrorHandler.swift:113:13: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
111 | let delayTime = DispatchTime.now() + retryAfter
112 | DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
113 | block()
| |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
114 | })
115 |
[79/90] Compiling IceCream Manifest.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/ErrorHandler.swift:113:13: warning: capture of 'block' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | let delayTime = DispatchTime.now() + retryAfter
112 | DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
113 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
114 | })
115 |
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Manifest.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// This file is for setting some develop configs for IceCream framework.
11 |
12 | public class IceCream {
| `- note: class 'IceCream' does not conform to the 'Sendable' protocol
13 |
14 | public static let shared = IceCream()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// There are quite a lot `print`s in the IceCream source files.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/ErrorHandler.swift:113:13: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
111 | let delayTime = DispatchTime.now() + retryAfter
112 | DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
113 | block()
| |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
114 | })
115 |
[80/90] Compiling IceCream CreamLocation.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:10:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
8 | import CloudKit
9 |
10 | protocol DatabaseManager: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
11 |
12 | /// A conduit for accessing and performing operations on the data of an app container.
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:57:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | func resumeLongLivedOperationIfPossible() {
56 | container.fetchAllLongLivedOperationIDs { [weak self]( opeIDs, error) in
57 | guard let self = self, error == nil, let ids = opeIDs else { return }
| `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 | for id in ids {
59 | self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:60:38: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 | for id in ids {
59 | self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
60 | guard let self = self, error == nil else { return }
| `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | if let modifyOp = ope as? CKModifyRecordsOperation {
62 | modifyOp.modifyRecordsCompletionBlock = { (_,_,_) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:82:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
80 | func startObservingRemoteChanges() {
81 | NotificationCenter.default.addObserver(forName: Notifications.cloudKitDataDidChangeRemotely.name, object: nil, queue: nil, using: { [weak self](_) in
82 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
83 | DispatchQueue.global(qos: .utility).async {
84 | self.fetchChangesInDatabase(nil)
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:84:17: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
82 | guard let self = self else { return }
83 | DispatchQueue.global(qos: .utility).async {
84 | self.fetchChangesInDatabase(nil)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
85 | }
86 | })
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:121:21: warning: capture of 'completion' with non-sendable type '(((any Error)?) -> ())?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
119 | case .success:
120 | DispatchQueue.main.async {
121 | completion?(nil)
| |- warning: capture of 'completion' with non-sendable type '(((any Error)?) -> ())?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
122 | }
123 | case .retry(let timeToWait, _):
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:121:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
119 | case .success:
120 | DispatchQueue.main.async {
121 | completion?(nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 | }
123 | case .retry(let timeToWait, _):
[81/90] Compiling IceCream DatabaseManagerProtocol.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:10:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
8 | import CloudKit
9 |
10 | protocol DatabaseManager: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
11 |
12 | /// A conduit for accessing and performing operations on the data of an app container.
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:57:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | func resumeLongLivedOperationIfPossible() {
56 | container.fetchAllLongLivedOperationIDs { [weak self]( opeIDs, error) in
57 | guard let self = self, error == nil, let ids = opeIDs else { return }
| `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 | for id in ids {
59 | self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:60:38: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 | for id in ids {
59 | self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
60 | guard let self = self, error == nil else { return }
| `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | if let modifyOp = ope as? CKModifyRecordsOperation {
62 | modifyOp.modifyRecordsCompletionBlock = { (_,_,_) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:82:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
80 | func startObservingRemoteChanges() {
81 | NotificationCenter.default.addObserver(forName: Notifications.cloudKitDataDidChangeRemotely.name, object: nil, queue: nil, using: { [weak self](_) in
82 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
83 | DispatchQueue.global(qos: .utility).async {
84 | self.fetchChangesInDatabase(nil)
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:84:17: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
82 | guard let self = self else { return }
83 | DispatchQueue.global(qos: .utility).async {
84 | self.fetchChangesInDatabase(nil)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
85 | }
86 | })
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:121:21: warning: capture of 'completion' with non-sendable type '(((any Error)?) -> ())?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
119 | case .success:
120 | DispatchQueue.main.async {
121 | completion?(nil)
| |- warning: capture of 'completion' with non-sendable type '(((any Error)?) -> ())?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
122 | }
123 | case .retry(let timeToWait, _):
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:121:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
119 | case .success:
120 | DispatchQueue.main.async {
121 | completion?(nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 | }
123 | case .retry(let timeToWait, _):
[82/90] Compiling IceCream CKRecordRecoverable.swift
[83/90] Compiling IceCream CreamAsset.swift
[84/90] Compiling IceCream PrivateDatabaseManager.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PrivateDatabaseManager.swift:82:25: warning: capture of 'object' with non-sendable type 'any Syncable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
80 | // have not been caught to CloudKit to make data in sync
81 | DispatchQueue.main.async {
82 | object.pushLocalObjectsToCloudKit()
| `- warning: capture of 'object' with non-sendable type 'any Syncable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:17: note: protocol 'Syncable' does not conform to the 'Sendable' protocol
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
| `- note: protocol 'Syncable' does not conform to the 'Sendable' protocol
15 |
16 | /// CKRecordZone related
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PrivateDatabaseManager.swift:132:17: warning: capture of 'object' with non-sendable type 'any Syncable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | self.syncObjects.forEach { object in
131 | DispatchQueue.main.async {
132 | object.registerLocalDatabase()
| `- warning: capture of 'object' with non-sendable type 'any Syncable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:17: note: protocol 'Syncable' does not conform to the 'Sendable' protocol
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
| `- note: protocol 'Syncable' does not conform to the 'Sendable' protocol
15 |
16 | /// CKRecordZone related
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PrivateDatabaseManager.swift:82:25: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
80 | // have not been caught to CloudKit to make data in sync
81 | DispatchQueue.main.async {
82 | object.pushLocalObjectsToCloudKit()
| |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'object' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PrivateDatabaseManager.swift:132:17: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
130 | self.syncObjects.forEach { object in
131 | DispatchQueue.main.async {
132 | object.registerLocalDatabase()
| |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'object' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
133 | }
134 | }
[85/90] Compiling IceCream BackgroundWorker.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | private var thread: Thread?
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:26:34: warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
:
24 | if thread == nil {
25 | thread = Thread { [weak self] in
26 | guard let self = self, let th = self.thread else {
| `- warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 | Thread.exit()
28 | return
[86/90] Compiling IceCream CKRecordConvertible.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | private var thread: Thread?
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:26:34: warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
:
24 | if thread == nil {
25 | thread = Thread { [weak self] in
26 | guard let self = self, let th = self.thread else {
| `- warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 | Thread.exit()
28 | return
[87/90] Compiling IceCream SyncEngine.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/SyncEngine.swift:42:13: warning: switch must be exhaustive; this is an error in the Swift 6 language mode
40 | databaseManager.container.accountStatus { [weak self] (status, error) in
41 | guard let self = self else { return }
42 | switch status {
| |- warning: switch must be exhaustive; this is an error in the Swift 6 language mode
| `- note: add missing case: '.temporarilyUnavailable'
43 | case .available:
44 | self.databaseManager.registerLocalDatabase()
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/SyncEngine.swift:41:30: warning: capture of 'self' with non-sendable type 'SyncEngine?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
14 | /// 3. it hands over CKRecordZone stuffs to SyncObject so that it can have an effect on local Realm Database
15 |
16 | public final class SyncEngine {
| `- note: class 'SyncEngine' does not conform to the 'Sendable' protocol
17 |
18 | private let databaseManager: DatabaseManager
:
39 | databaseManager.prepare()
40 | databaseManager.container.accountStatus { [weak self] (status, error) in
41 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'SyncEngine?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
42 | switch status {
43 | case .available:
[88/90] Compiling IceCream PublicDatabaseManager.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PublicDatabaseManager.swift:61:17: warning: capture of 'object' with non-sendable type 'any Syncable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
59 | syncObjects.forEach { object in
60 | DispatchQueue.main.async {
61 | object.registerLocalDatabase()
| `- warning: capture of 'object' with non-sendable type 'any Syncable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
62 | }
63 | }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:17: note: protocol 'Syncable' does not conform to the 'Sendable' protocol
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
| `- note: protocol 'Syncable' does not conform to the 'Sendable' protocol
15 |
16 | /// CKRecordZone related
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PublicDatabaseManager.swift:82:21: warning: capture of 'callback' with non-sendable type '(((any Error)?) -> Void)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
80 | case .success:
81 | DispatchQueue.main.async {
82 | callback?(nil)
| |- warning: capture of 'callback' with non-sendable type '(((any Error)?) -> Void)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | case .retry(let timeToWait, _):
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PublicDatabaseManager.swift:61:17: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
59 | syncObjects.forEach { object in
60 | DispatchQueue.main.async {
61 | object.registerLocalDatabase()
| |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'object' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PublicDatabaseManager.swift:82:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
80 | case .success:
81 | DispatchQueue.main.async {
82 | callback?(nil)
| |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
83 | }
84 | case .retry(let timeToWait, _):
[89/90] Compiling IceCream SyncObject.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | private var thread: Thread?
[90/90] Emitting module IceCream
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
| `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 | static let shared = BackgroundWorker()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | private var thread: Thread?
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:10:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
8 | import CloudKit
9 |
10 | protocol DatabaseManager: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
11 |
12 | /// A conduit for accessing and performing operations on the data of an app container.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Manifest.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// This file is for setting some develop configs for IceCream framework.
11 |
12 | public class IceCream {
| `- note: class 'IceCream' does not conform to the 'Sendable' protocol
13 |
14 | public static let shared = IceCream()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// There are quite a lot `print`s in the IceCream source files.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
15 |
16 | /// CKRecordZone related
[91/91] Compiling IceCream Syncable.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
15 |
16 | /// CKRecordZone related
Build complete! (27.02s)
Build complete.
{
"dependencies" : [
{
"identity" : "realm-cocoa",
"requirement" : {
"range" : [
{
"lower_bound" : "4.1.1",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/realm/realm-cocoa"
}
],
"manifest_display_name" : "IceCream",
"name" : "IceCream",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.12"
},
{
"name" : "ios",
"version" : "10.0"
},
{
"name" : "tvos",
"version" : "10.0"
},
{
"name" : "watchos",
"version" : "3.0"
}
],
"products" : [
{
"name" : "IceCream",
"targets" : [
"IceCream"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "IceCream",
"module_type" : "SwiftTarget",
"name" : "IceCream",
"path" : "IceCream",
"product_dependencies" : [
"RealmSwift",
"Realm"
],
"product_memberships" : [
"IceCream"
],
"sources" : [
"Classes/BackgroundWorker.swift",
"Classes/CKRecordConvertible.swift",
"Classes/CKRecordRecoverable.swift",
"Classes/CreamAsset.swift",
"Classes/CreamLocation.swift",
"Classes/DatabaseManagerProtocol.swift",
"Classes/ErrorHandler.swift",
"Classes/Manifest.swift",
"Classes/Notification+Name.swift",
"Classes/PendingRelationshipsWorker.swift",
"Classes/PrivateDatabaseManager.swift",
"Classes/PublicDatabaseManager.swift",
"Classes/SyncEngine.swift",
"Classes/SyncObject.swift",
"Classes/Syncable.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Done.