The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of IceCream, reference master (e6a89b), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 11:35:58 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/caiyue1993/IceCream.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/caiyue1993/IceCream
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at e6a89be use Music Mate as the updated live demo
Cloned https://github.com/caiyue1993/IceCream.git
Revision (git rev-parse @):
e6a89be5c7dfa3b42e58bfe5422d57c19c4d9e4d
SUCCESS checkout https://github.com/caiyue1993/IceCream.git at master
Fetching https://github.com/realm/realm-core
Fetching https://github.com/realm/realm-cocoa
[1/131268] Fetching realm-cocoa
[21004/383749] Fetching realm-cocoa, realm-core
Fetched https://github.com/realm/realm-cocoa from cache (11.48s)
Fetched https://github.com/realm/realm-core from cache (11.48s)
Computing version for https://github.com/realm/realm-cocoa
Computed https://github.com/realm/realm-cocoa at 4.1.1 (12.17s)
Computing version for https://github.com/realm/realm-core
Computed https://github.com/realm/realm-core at 5.23.6 (0.60s)
Creating working copy for https://github.com/realm/realm-cocoa
Working copy of https://github.com/realm/realm-cocoa resolved at 4.1.1
Creating working copy for https://github.com/realm/realm-core
Working copy of https://github.com/realm/realm-core resolved at 5.23.6
========================================
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.01s)
Fetching https://github.com/realm/realm-cocoa from cache
Fetched https://github.com/realm/realm-cocoa from cache (0.76s)
Computing version for https://github.com/realm/realm-cocoa
Computed https://github.com/realm/realm-cocoa at 4.4.1 (1.41s)
Fetching https://github.com/realm/realm-core from cache
Fetched https://github.com/realm/realm-core from cache (0.93s)
Computing version for https://github.com/realm/realm-core
Computed https://github.com/realm/realm-core at 5.23.8 (1.56s)
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 master (e6a89be)
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.1
Building package at path:  $PWD
https://github.com/caiyue1993/IceCream.git
https://github.com/caiyue1993/IceCream.git
{
  "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"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/55] Write sources
[1/55] Write swift-version-2F0A5646E1D333AE.txt
[2/55] Compiling binding_callback_thread_observer.cpp
[3/55] Compiling collection_notifications.cpp
[4/55] Compiling external_commit_helper.cpp
[5/55] Compiling keychain_helper.cpp
[6/55] Compiling RLMUpdateChecker.mm
[7/55] Compiling RLMRealmUtil.mm
[8/55] Compiling RLMUtil.mm
[9/55] Compiling RLMThreadSafeReference.mm
[10/55] Compiling RLMSchema.mm
[11/55] Compiling RLMRealmConfiguration.mm
[12/55] Compiling RLMResults.mm
[13/55] Compiling RLMSwiftSupport.m
[14/55] Compiling RLMPredicateUtil.mm
[15/55] Compiling RLMRealm.mm
[16/55] Compiling RLMProperty.mm
[17/55] Compiling RLMObjectSchema.mm
[18/55] Compiling RLMConstants.m
[19/55] Compiling RLMOptionalBase.mm
[20/55] Compiling RLMObjectStore.mm
[21/55] Compiling RLMObservation.mm
[22/55] Compiling RLMObject.mm
[23/55] Compiling RLMMigration.mm
[24/55] Compiling RLMObjectBase.mm
[25/55] Compiling event_loop_signal.cpp
[26/55] Compiling RLMQueryUtil.mm
[27/55] Compiling RLMListBase.mm
[28/55] Compiling uuid.cpp
[29/55] Compiling RLMManagedArray.mm
[30/55] Compiling placeholder.cpp
[31/55] Compiling RLMAnalytics.mm
[32/55] Compiling RLMCollection.mm
[33/55] Compiling RLMClassInfo.mm
[34/55] Compiling RLMArray.mm
[35/55] Compiling schema.cpp
[36/55] Compiling RLMAccessor.mm
[37/55] Compiling thread_safe_reference.cpp
[38/55] Compiling index_set.cpp
[39/55] Compiling object_schema.cpp
[40/55] Compiling weak_realm_notifier.cpp
[41/55] Compiling object_store.cpp
[42/55] Compiling object.cpp
[43/55] Compiling shared_realm.cpp
[44/55] Compiling results.cpp
[44/55] Write sources
[46/55] Compiling list.cpp
[47/55] Compiling primitive_list_notifier.cpp
[48/55] Compiling collection_change_builder.cpp
[49/55] Compiling object_notifier.cpp
[50/55] Compiling list_notifier.cpp
[51/55] Compiling transact_log_handler.cpp
[52/55] Compiling results_notifier.cpp
[53/55] Compiling realm_coordinator.cpp
[54/55] Compiling collection_notifier.cpp
[56/74] Compiling RealmSwift Property.swift
[57/74] Compiling RealmSwift Realm.swift
[58/74] Compiling RealmSwift ObjectiveCSupport.swift
[59/74] Compiling RealmSwift Optional.swift
[60/74] Compiling RealmSwift RealmCollection.swift
[61/74] Compiling RealmSwift RealmConfiguration.swift
[62/74] Compiling RealmSwift SortDescriptor.swift
[63/74] Compiling RealmSwift ThreadSafeReference.swift
[64/74] Compiling RealmSwift Results.swift
[65/74] Compiling RealmSwift Schema.swift
[66/75] Compiling RealmSwift Migration.swift
[67/75] Compiling RealmSwift Nonsync.swift
[68/75] Compiling RealmSwift Object.swift
[69/75] Compiling RealmSwift ObjectSchema.swift
[70/75] Compiling RealmSwift LinkingObjects.swift
[71/75] Compiling RealmSwift List.swift
[72/75] Emitting module RealmSwift
[73/75] Compiling RealmSwift Aliases.swift
[74/75] Compiling RealmSwift Error.swift
[75/75] Compiling RealmSwift Util.swift
[76/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.
/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
 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
 58 |             for id in ids {
 59 |                 self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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
 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
 61 |                     if let modifyOp = ope as? CKModifyRecordsOperation {
 62 |                         modifyOp.modifyRecordsCompletionBlock = { (_,_,_) in
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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
 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
 83 |             DispatchQueue.global(qos: .utility).async {
 84 |                 self.fetchChangesInDatabase(nil)
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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
 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
 85 |             }
 86 |         })
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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, _):
[77/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.
/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
 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
 58 |             for id in ids {
 59 |                 self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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
 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
 61 |                     if let modifyOp = ope as? CKModifyRecordsOperation {
 62 |                         modifyOp.modifyRecordsCompletionBlock = { (_,_,_) in
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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
 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
 83 |             DispatchQueue.global(qos: .utility).async {
 84 |                 self.fetchChangesInDatabase(nil)
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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
 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
 85 |             }
 86 |         })
IceCream.DatabaseManager.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol DatabaseManager {
2 | Self : IceCream.DatabaseManager}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/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, _):
[78/90] Compiling IceCream Notification+Name.swift
[79/90] Compiling IceCream PendingRelationshipsWorker.swift
[80/90] Compiling IceCream ErrorHandler.swift
/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- 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 |
[81/90] Compiling IceCream Manifest.swift
/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- 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 |
[82/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                `- 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
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
27 |                     Thread.exit()
28 |                     return
[83/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                `- 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
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
27 |                     Thread.exit()
28 |                     return
[84/91] 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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                `- 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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- 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
[85/91] Compiling IceCream CKRecordRecoverable.swift
[86/91] Compiling IceCream CreamAsset.swift
[87/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
[88/91] Compiling IceCream SyncObject.swift
[89/91] Compiling IceCream SyncEngine.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/SyncEngine.swift:42:13: warning: switch must be exhaustive
 40 |         databaseManager.container.accountStatus { [weak self] (status, error) in
 41 |             guard let self = self else { return }
 42 |             switch status {
    |             |- warning: switch must be exhaustive
    |             `- 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
 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
 42 |             switch status {
 43 |             case .available:
[90/91] Compiling IceCream PublicDatabaseManager.swift
/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, _):
[91/91] Compiling IceCream PrivateDatabaseManager.swift
/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 |         }
Build complete! (16.46s)
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.