The Swift Package Index logo.Swift Package Index

Build Information

Successful build of ConfigCat, reference master (61c3ad), with Swift 6.1 for macOS (SPM) on 26 Mar 2026 21:57:00 UTC.

Swift 6 data race errors: 8

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.69.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/configcat/swift-sdk.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/configcat/swift-sdk
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 61c3ad3 Add Sendable protocol to client (#60)
Cloned https://github.com/configcat/swift-sdk.git
Revision (git rev-parse @):
61c3ad373e786213533291acc4f7d9a32ed7ba13
SUCCESS checkout https://github.com/configcat/swift-sdk.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/configcat/swift-sdk.git
https://github.com/configcat/swift-sdk.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ConfigCat",
  "name" : "ConfigCat",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "ConfigCat",
      "targets" : [
        "ConfigCat"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Version",
      "module_type" : "SwiftTarget",
      "name" : "Version",
      "path" : "Sources/Version",
      "product_memberships" : [
        "ConfigCat"
      ],
      "sources" : [
        "Version.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ConfigCatTests",
      "module_type" : "SwiftTarget",
      "name" : "ConfigCatTests",
      "path" : "Tests/ConfigCatTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/_overrides/test_list_truncation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules/and_rules_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules/and_rules_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/comparators.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/comparators/allinone.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/epoch_date_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/epoch_date_validation/date_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/list_truncation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/list_truncation/list_truncation.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/number_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/number_validation/number_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/matching_options_custom_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/no_options_custom_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/options_custom_attribute_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id/options_user_attribute_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id/options_user_attribute_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_matching_targeted_attribute_no_options_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_matching_targeted_attribute_options_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_multilevel.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_both.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_dep.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_prereq.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_matching.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_matching.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_user_multi_conditions.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation/semver_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation/semver_relations_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/double_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/int_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/off_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/on_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/text_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_attribute_conversion.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_attribute_trimming.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_value_trimming.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/test_circulardependency_v6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/test_override_flagdependency_v6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_and_or.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_comparators_v6.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_number.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_prerequisite_flag.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_segments.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_segments_old.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_semantic.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_semantic_2.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_sensitive.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_unicode.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_variationId.csv",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "AsyncAwaitTests.swift",
        "AutoPollingTests.swift",
        "CacheTest.swift",
        "ConfigCatClientIntegrationTests.swift",
        "ConfigCatClientTests.swift",
        "ConfigFetcherTests.swift",
        "DataGovernanceTests.swift",
        "EvaluationDetailsExtensionTests.swift",
        "EvaluationLogTests.swift",
        "EvaluationTests.swift",
        "Helpers.swift",
        "LazyLoadingTests.swift",
        "LocalTests.swift",
        "ManualPollingTests.swift",
        "Mock.swift",
        "RolloutIntegrationV1Tests.swift",
        "RolloutIntegrationV2Tests.swift",
        "SnapshotTests.swift",
        "VariationIdTests.swift"
      ],
      "target_dependencies" : [
        "ConfigCat"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ConfigCat",
      "module_type" : "SwiftTarget",
      "name" : "ConfigCat",
      "path" : "Sources/ConfigCat",
      "product_memberships" : [
        "ConfigCat"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Config.swift",
        "ConfigCache.swift",
        "ConfigCatClient.swift",
        "ConfigCatClientProtocol.swift",
        "ConfigCatClientSnapshot.swift",
        "ConfigCatOptions.swift",
        "ConfigCatUser.swift",
        "ConfigFetcher.swift",
        "ConfigService.swift",
        "EvaluationDetails.swift",
        "EvaluationLogger.swift",
        "Extensions.swift",
        "FlagEvaluator.swift",
        "KeyValue.swift",
        "LocalDictionaryDataSource.swift",
        "Log.swift",
        "MutableQueue.swift",
        "Mutex.swift",
        "OverrideBehaviour.swift",
        "OverrideDataSource.swift",
        "PollingMode.swift",
        "PollingModes.swift",
        "RolloutEvaluator.swift",
        "SnapshotBuilder.swift",
        "Synced.swift",
        "Utils.swift"
      ],
      "target_dependencies" : [
        "Version"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
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/4] Write sources
[1/4] Copying PrivacyInfo.xcprivacy
[2/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/6] Emitting module Version
[6/6] Compiling Version Version.swift
[7/32] Emitting module ConfigCat
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:165:5: warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 59 | }
 60 |
 61 | @objc public enum UserComparator: Int {
    |                   `- note: consider making enum 'UserComparator' conform to the 'Sendable' protocol
 62 |     case unknown = -1
 63 |     /// Checks whether the comparison attribute is equal to any of the comparison values.
    :
163 | }
164 |
165 | let comparatorTexts: [UserComparator: String] = [
    |     |- warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'comparatorTexts' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 |     .oneOf:                       "IS ONE OF",
167 |     .notOneOf:                    "IS NOT ONE OF",
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:270:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
206 | }
207 |
208 | class ConfigEntry: Equatable {
    |       `- note: class 'ConfigEntry' does not conform to the 'Sendable' protocol
209 |     static func ==(lhs: ConfigEntry, rhs: ConfigEntry) -> Bool {
210 |         lhs.eTag == rhs.eTag
    :
268 |     }
269 |
270 |     static let empty = ConfigEntry(eTag: "empty")
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:340:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
271 | }
272 |
273 | public class Config: NSObject, JsonSerializable {
    |              `- note: class 'Config' does not conform to the 'Sendable' protocol
274 |     static let preferencesKey = "p"
275 |     static let settingsKey = "f"
    :
338 |         }
339 |     }
340 |     static let empty = Config(preferences: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:364:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
341 | }
342 |
343 | class Preferences: JsonSerializable {
    |       `- note: class 'Preferences' does not conform to the 'Sendable' protocol
344 |     static let preferencesUrlKey = "u"
345 |     static let preferencesRedirectKey = "r"
    :
362 |     }
363 |
364 |     static let empty = Preferences(preferencesUrl: "", preferencesRedirect: .noRedirect, salt: nil)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
365 |
366 |     var isEmpty: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:22:24: warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
 20 |     private var closed: Bool = false
 21 |
 22 |     private static let mutex = Mutex()
    |                        |- warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'mutex' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Mutex.swift:9:13: note: class 'Mutex' does not conform to the 'Sendable' protocol
 7 | import Foundation
 8 |
 9 | final class Mutex {
   |             `- note: class 'Mutex' does not conform to the 'Sendable' protocol
10 |     private let mutex: UnsafeMutablePointer<pthread_mutex_t> = UnsafeMutablePointer.allocate(capacity: 1)
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:23:24: warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 |     private static let mutex = Mutex()
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
    |                        |- warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'instances' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'instances' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     init(sdkKey: String,
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigService.swift:18:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | class SettingsResult {
    |       `- note: class 'SettingsResult' does not conform to the 'Sendable' protocol
  4 |     let settings: [String: Setting]
  5 |     let fetchTime: Date
    :
 16 |     }
 17 |
 18 |     static let empty = SettingsResult(settings: [:], fetchTime: .distantPast)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 | }
 20 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Log.swift:21:16: warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
18 | }
19 |
20 | class InternalLogger {
   |       `- note: class 'InternalLogger' does not conform to the 'Sendable' protocol
21 |     static let noLogger: InternalLogger = InternalLogger(log: NoLogger(), level: .nolog, hooks: Hooks())
   |                |- warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'noLogger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     let log: ConfigCatLogger
23 |     let level: ConfigCatLogLevel
[8/34] Compiling ConfigCat Utils.swift
[9/34] Compiling ConfigCat resource_bundle_accessor.swift
[10/34] Compiling ConfigCat FlagEvaluator.swift
[11/34] Compiling ConfigCat KeyValue.swift
[12/34] Compiling ConfigCat LocalDictionaryDataSource.swift
[13/34] Compiling ConfigCat PollingModes.swift
[14/34] Compiling ConfigCat RolloutEvaluator.swift
[15/34] Compiling ConfigCat SnapshotBuilder.swift
[16/34] Compiling ConfigCat Synced.swift
[17/34] Compiling ConfigCat EvaluationDetails.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:157:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
155 |                 getValue(for: key, defaultValue: defaultValue, user: user) {
156 |                     value in
157 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
158 |                 }
159 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:171:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
169 |                 getValue(for: key, defaultValue: defaultValue, user: user) {
170 |                     value in
171 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
172 |                 }
173 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:188:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
186 |                     user: user
187 |                 ) { details in
188 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
189 |                 }
190 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:205:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
203 |                     user: user
204 |                 ) { details in
205 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
206 |                 }
207 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:216:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
214 |             await withUnsafeContinuation { continuation in
215 |                 getAllValueDetails(user: user) { details in
216 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
217 |                 }
218 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:234:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
232 |             await withUnsafeContinuation { continuation in
233 |                 getKeyAndValue(for: variationId) { value in
234 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
235 |                 }
236 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:245:34: warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
243 |             await withUnsafeContinuation { continuation in
244 |                 getAllValues(user: user) { values in
245 |                     continuation.resume(returning: values)
    |                                  |- warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'values' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
246 |                 }
247 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:255:34: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
253 |             await withUnsafeContinuation { continuation in
254 |                 forceRefresh { result in
255 |                     continuation.resume(returning: result)
    |                                  |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
256 |                 }
257 |             }
[18/34] Compiling ConfigCat EvaluationLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:157:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
155 |                 getValue(for: key, defaultValue: defaultValue, user: user) {
156 |                     value in
157 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
158 |                 }
159 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:171:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
169 |                 getValue(for: key, defaultValue: defaultValue, user: user) {
170 |                     value in
171 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
172 |                 }
173 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:188:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
186 |                     user: user
187 |                 ) { details in
188 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
189 |                 }
190 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:205:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
203 |                     user: user
204 |                 ) { details in
205 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
206 |                 }
207 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:216:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
214 |             await withUnsafeContinuation { continuation in
215 |                 getAllValueDetails(user: user) { details in
216 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
217 |                 }
218 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:234:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
232 |             await withUnsafeContinuation { continuation in
233 |                 getKeyAndValue(for: variationId) { value in
234 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
235 |                 }
236 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:245:34: warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
243 |             await withUnsafeContinuation { continuation in
244 |                 getAllValues(user: user) { values in
245 |                     continuation.resume(returning: values)
    |                                  |- warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'values' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
246 |                 }
247 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:255:34: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
253 |             await withUnsafeContinuation { continuation in
254 |                 forceRefresh { result in
255 |                     continuation.resume(returning: result)
    |                                  |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
256 |                 }
257 |             }
[19/34] Compiling ConfigCat Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:157:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
155 |                 getValue(for: key, defaultValue: defaultValue, user: user) {
156 |                     value in
157 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
158 |                 }
159 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:171:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
169 |                 getValue(for: key, defaultValue: defaultValue, user: user) {
170 |                     value in
171 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
172 |                 }
173 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:188:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
186 |                     user: user
187 |                 ) { details in
188 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
189 |                 }
190 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:205:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
203 |                     user: user
204 |                 ) { details in
205 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
206 |                 }
207 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:216:34: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
214 |             await withUnsafeContinuation { continuation in
215 |                 getAllValueDetails(user: user) { details in
216 |                     continuation.resume(returning: details)
    |                                  |- warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'details' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
217 |                 }
218 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:234:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
232 |             await withUnsafeContinuation { continuation in
233 |                 getKeyAndValue(for: variationId) { value in
234 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
235 |                 }
236 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:245:34: warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
243 |             await withUnsafeContinuation { continuation in
244 |                 getAllValues(user: user) { values in
245 |                     continuation.resume(returning: values)
    |                                  |- warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'values' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
246 |                 }
247 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:255:34: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
253 |             await withUnsafeContinuation { continuation in
254 |                 forceRefresh { result in
255 |                     continuation.resume(returning: result)
    |                                  |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
256 |                 }
257 |             }
[20/34] Compiling ConfigCat ConfigCatUser.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigFetcher.swift:42:13: warning: capture of 'completion' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a '@Sendable' closure
 40 |     func get(request: URLRequest, completion: @escaping (Data?, URLResponse?, Error?) -> Void) {
 41 |         session.dataTask(with: request) { (data, resp, error) in
 42 |             completion(data, resp, error)
    |             |- warning: capture of 'completion' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 43 |         }.resume()
 44 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigService.swift:18:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | class SettingsResult {
    |       `- note: class 'SettingsResult' does not conform to the 'Sendable' protocol
  4 |     let settings: [String: Setting]
  5 |     let fetchTime: Date
    :
 16 |     }
 17 |
 18 |     static let empty = SettingsResult(settings: [:], fetchTime: .distantPast)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 | }
 20 |
[21/34] Compiling ConfigCat ConfigFetcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigFetcher.swift:42:13: warning: capture of 'completion' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a '@Sendable' closure
 40 |     func get(request: URLRequest, completion: @escaping (Data?, URLResponse?, Error?) -> Void) {
 41 |         session.dataTask(with: request) { (data, resp, error) in
 42 |             completion(data, resp, error)
    |             |- warning: capture of 'completion' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 43 |         }.resume()
 44 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigService.swift:18:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | class SettingsResult {
    |       `- note: class 'SettingsResult' does not conform to the 'Sendable' protocol
  4 |     let settings: [String: Setting]
  5 |     let fetchTime: Date
    :
 16 |     }
 17 |
 18 |     static let empty = SettingsResult(settings: [:], fetchTime: .distantPast)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 | }
 20 |
[22/34] Compiling ConfigCat ConfigService.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigFetcher.swift:42:13: warning: capture of 'completion' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a '@Sendable' closure
 40 |     func get(request: URLRequest, completion: @escaping (Data?, URLResponse?, Error?) -> Void) {
 41 |         session.dataTask(with: request) { (data, resp, error) in
 42 |             completion(data, resp, error)
    |             |- warning: capture of 'completion' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 43 |         }.resume()
 44 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigService.swift:18:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | class SettingsResult {
    |       `- note: class 'SettingsResult' does not conform to the 'Sendable' protocol
  4 |     let settings: [String: Setting]
  5 |     let fetchTime: Date
    :
 16 |     }
 17 |
 18 |     static let empty = SettingsResult(settings: [:], fetchTime: .distantPast)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SettingsResult' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 | }
 20 |
[23/34] Compiling ConfigCat OverrideBehaviour.swift
[24/34] Compiling ConfigCat OverrideDataSource.swift
[25/34] Compiling ConfigCat PollingMode.swift
[26/34] Compiling ConfigCat Log.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Log.swift:21:16: warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
18 | }
19 |
20 | class InternalLogger {
   |       `- note: class 'InternalLogger' does not conform to the 'Sendable' protocol
21 |     static let noLogger: InternalLogger = InternalLogger(log: NoLogger(), level: .nolog, hooks: Hooks())
   |                |- warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'noLogger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     let log: ConfigCatLogger
23 |     let level: ConfigCatLogLevel
[27/34] Compiling ConfigCat MutableQueue.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Log.swift:21:16: warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
18 | }
19 |
20 | class InternalLogger {
   |       `- note: class 'InternalLogger' does not conform to the 'Sendable' protocol
21 |     static let noLogger: InternalLogger = InternalLogger(log: NoLogger(), level: .nolog, hooks: Hooks())
   |                |- warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'noLogger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     let log: ConfigCatLogger
23 |     let level: ConfigCatLogLevel
[28/34] Compiling ConfigCat Mutex.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Log.swift:21:16: warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
18 | }
19 |
20 | class InternalLogger {
   |       `- note: class 'InternalLogger' does not conform to the 'Sendable' protocol
21 |     static let noLogger: InternalLogger = InternalLogger(log: NoLogger(), level: .nolog, hooks: Hooks())
   |                |- warning: static property 'noLogger' is not concurrency-safe because non-'Sendable' type 'InternalLogger' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'noLogger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     let log: ConfigCatLogger
23 |     let level: ConfigCatLogLevel
[29/34] Compiling ConfigCat ConfigCatClientProtocol.swift
[30/34] Compiling ConfigCat ConfigCatClientSnapshot.swift
[31/34] Compiling ConfigCat ConfigCatOptions.swift
[32/34] Compiling ConfigCat Config.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:165:5: warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 59 | }
 60 |
 61 | @objc public enum UserComparator: Int {
    |                   `- note: consider making enum 'UserComparator' conform to the 'Sendable' protocol
 62 |     case unknown = -1
 63 |     /// Checks whether the comparison attribute is equal to any of the comparison values.
    :
163 | }
164 |
165 | let comparatorTexts: [UserComparator: String] = [
    |     |- warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'comparatorTexts' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 |     .oneOf:                       "IS ONE OF",
167 |     .notOneOf:                    "IS NOT ONE OF",
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:270:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
206 | }
207 |
208 | class ConfigEntry: Equatable {
    |       `- note: class 'ConfigEntry' does not conform to the 'Sendable' protocol
209 |     static func ==(lhs: ConfigEntry, rhs: ConfigEntry) -> Bool {
210 |         lhs.eTag == rhs.eTag
    :
268 |     }
269 |
270 |     static let empty = ConfigEntry(eTag: "empty")
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:340:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
271 | }
272 |
273 | public class Config: NSObject, JsonSerializable {
    |              `- note: class 'Config' does not conform to the 'Sendable' protocol
274 |     static let preferencesKey = "p"
275 |     static let settingsKey = "f"
    :
338 |         }
339 |     }
340 |     static let empty = Config(preferences: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:364:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
341 | }
342 |
343 | class Preferences: JsonSerializable {
    |       `- note: class 'Preferences' does not conform to the 'Sendable' protocol
344 |     static let preferencesUrlKey = "u"
345 |     static let preferencesRedirectKey = "r"
    :
362 |     }
363 |
364 |     static let empty = Preferences(preferencesUrl: "", preferencesRedirect: .noRedirect, salt: nil)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
365 |
366 |     var isEmpty: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:22:24: warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
 20 |     private var closed: Bool = false
 21 |
 22 |     private static let mutex = Mutex()
    |                        |- warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'mutex' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Mutex.swift:9:13: note: class 'Mutex' does not conform to the 'Sendable' protocol
 7 | import Foundation
 8 |
 9 | final class Mutex {
   |             `- note: class 'Mutex' does not conform to the 'Sendable' protocol
10 |     private let mutex: UnsafeMutablePointer<pthread_mutex_t> = UnsafeMutablePointer.allocate(capacity: 1)
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:23:24: warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 |     private static let mutex = Mutex()
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
    |                        |- warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'instances' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'instances' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     init(sdkKey: String,
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:384:30: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
382 |         await withUnsafeContinuation { continuation in
383 |             hooks.addOnReady { state in
384 |                 continuation.resume(returning: state)
    |                              |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'state' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
385 |             }
386 |         }
[33/34] Compiling ConfigCat ConfigCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:165:5: warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 59 | }
 60 |
 61 | @objc public enum UserComparator: Int {
    |                   `- note: consider making enum 'UserComparator' conform to the 'Sendable' protocol
 62 |     case unknown = -1
 63 |     /// Checks whether the comparison attribute is equal to any of the comparison values.
    :
163 | }
164 |
165 | let comparatorTexts: [UserComparator: String] = [
    |     |- warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'comparatorTexts' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 |     .oneOf:                       "IS ONE OF",
167 |     .notOneOf:                    "IS NOT ONE OF",
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:270:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
206 | }
207 |
208 | class ConfigEntry: Equatable {
    |       `- note: class 'ConfigEntry' does not conform to the 'Sendable' protocol
209 |     static func ==(lhs: ConfigEntry, rhs: ConfigEntry) -> Bool {
210 |         lhs.eTag == rhs.eTag
    :
268 |     }
269 |
270 |     static let empty = ConfigEntry(eTag: "empty")
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:340:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
271 | }
272 |
273 | public class Config: NSObject, JsonSerializable {
    |              `- note: class 'Config' does not conform to the 'Sendable' protocol
274 |     static let preferencesKey = "p"
275 |     static let settingsKey = "f"
    :
338 |         }
339 |     }
340 |     static let empty = Config(preferences: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:364:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
341 | }
342 |
343 | class Preferences: JsonSerializable {
    |       `- note: class 'Preferences' does not conform to the 'Sendable' protocol
344 |     static let preferencesUrlKey = "u"
345 |     static let preferencesRedirectKey = "r"
    :
362 |     }
363 |
364 |     static let empty = Preferences(preferencesUrl: "", preferencesRedirect: .noRedirect, salt: nil)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
365 |
366 |     var isEmpty: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:22:24: warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
 20 |     private var closed: Bool = false
 21 |
 22 |     private static let mutex = Mutex()
    |                        |- warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'mutex' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Mutex.swift:9:13: note: class 'Mutex' does not conform to the 'Sendable' protocol
 7 | import Foundation
 8 |
 9 | final class Mutex {
   |             `- note: class 'Mutex' does not conform to the 'Sendable' protocol
10 |     private let mutex: UnsafeMutablePointer<pthread_mutex_t> = UnsafeMutablePointer.allocate(capacity: 1)
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:23:24: warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 |     private static let mutex = Mutex()
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
    |                        |- warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'instances' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'instances' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     init(sdkKey: String,
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:384:30: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
382 |         await withUnsafeContinuation { continuation in
383 |             hooks.addOnReady { state in
384 |                 continuation.resume(returning: state)
    |                              |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'state' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
385 |             }
386 |         }
[34/34] Compiling ConfigCat ConfigCatClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:165:5: warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 59 | }
 60 |
 61 | @objc public enum UserComparator: Int {
    |                   `- note: consider making enum 'UserComparator' conform to the 'Sendable' protocol
 62 |     case unknown = -1
 63 |     /// Checks whether the comparison attribute is equal to any of the comparison values.
    :
163 | }
164 |
165 | let comparatorTexts: [UserComparator: String] = [
    |     |- warning: let 'comparatorTexts' is not concurrency-safe because non-'Sendable' type '[UserComparator : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'comparatorTexts' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 |     .oneOf:                       "IS ONE OF",
167 |     .notOneOf:                    "IS NOT ONE OF",
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:270:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
206 | }
207 |
208 | class ConfigEntry: Equatable {
    |       `- note: class 'ConfigEntry' does not conform to the 'Sendable' protocol
209 |     static func ==(lhs: ConfigEntry, rhs: ConfigEntry) -> Bool {
210 |         lhs.eTag == rhs.eTag
    :
268 |     }
269 |
270 |     static let empty = ConfigEntry(eTag: "empty")
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ConfigEntry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:340:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
271 | }
272 |
273 | public class Config: NSObject, JsonSerializable {
    |              `- note: class 'Config' does not conform to the 'Sendable' protocol
274 |     static let preferencesKey = "p"
275 |     static let settingsKey = "f"
    :
338 |         }
339 |     }
340 |     static let empty = Config(preferences: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Config' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Config.swift:364:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
341 | }
342 |
343 | class Preferences: JsonSerializable {
    |       `- note: class 'Preferences' does not conform to the 'Sendable' protocol
344 |     static let preferencesUrlKey = "u"
345 |     static let preferencesRedirectKey = "r"
    :
362 |     }
363 |
364 |     static let empty = Preferences(preferencesUrl: "", preferencesRedirect: .noRedirect, salt: nil)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'Preferences' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
365 |
366 |     var isEmpty: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:22:24: warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
 20 |     private var closed: Bool = false
 21 |
 22 |     private static let mutex = Mutex()
    |                        |- warning: static property 'mutex' is not concurrency-safe because non-'Sendable' type 'Mutex' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'mutex' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Mutex.swift:9:13: note: class 'Mutex' does not conform to the 'Sendable' protocol
 7 | import Foundation
 8 |
 9 | final class Mutex {
   |             `- note: class 'Mutex' does not conform to the 'Sendable' protocol
10 |     private let mutex: UnsafeMutablePointer<pthread_mutex_t> = UnsafeMutablePointer.allocate(capacity: 1)
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:23:24: warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 |     private static let mutex = Mutex()
 23 |     private static var instances: [String: Weak<ConfigCatClient>] = [:]
    |                        |- warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'instances' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'instances' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     init(sdkKey: String,
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:384:30: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
382 |         await withUnsafeContinuation { continuation in
383 |             hooks.addOnReady { state in
384 |                 continuation.resume(returning: state)
    |                              |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'state' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
385 |             }
386 |         }
Build complete! (5.00s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ConfigCat",
  "name" : "ConfigCat",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "ConfigCat",
      "targets" : [
        "ConfigCat"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Version",
      "module_type" : "SwiftTarget",
      "name" : "Version",
      "path" : "Sources/Version",
      "product_memberships" : [
        "ConfigCat"
      ],
      "sources" : [
        "Version.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ConfigCatTests",
      "module_type" : "SwiftTarget",
      "name" : "ConfigCatTests",
      "path" : "Tests/ConfigCatTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/_overrides/test_list_truncation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules/and_rules_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules/and_rules_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/comparators.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/comparators/allinone.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/epoch_date_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/epoch_date_validation/date_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/list_truncation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/list_truncation/list_truncation.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/number_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/number_validation/number_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/matching_options_custom_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/no_options_custom_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/options_custom_attribute_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id/options_user_attribute_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id/options_user_attribute_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_matching_targeted_attribute_no_options_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_matching_targeted_attribute_options_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_multilevel.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_both.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_dep.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_prereq.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_matching.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_matching.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_user_multi_conditions.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation/semver_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation/semver_relations_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/double_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/int_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/off_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/on_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/text_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_attribute_conversion.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_attribute_trimming.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_value_trimming.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/test_circulardependency_v6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/test_override_flagdependency_v6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_and_or.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_comparators_v6.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_number.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_prerequisite_flag.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_segments.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_segments_old.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_semantic.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_semantic_2.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_sensitive.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_unicode.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_variationId.csv",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "AsyncAwaitTests.swift",
        "AutoPollingTests.swift",
        "CacheTest.swift",
        "ConfigCatClientIntegrationTests.swift",
        "ConfigCatClientTests.swift",
        "ConfigFetcherTests.swift",
        "DataGovernanceTests.swift",
        "EvaluationDetailsExtensionTests.swift",
        "EvaluationLogTests.swift",
        "EvaluationTests.swift",
        "Helpers.swift",
        "LazyLoadingTests.swift",
        "LocalTests.swift",
        "ManualPollingTests.swift",
        "Mock.swift",
        "RolloutIntegrationV1Tests.swift",
        "RolloutIntegrationV2Tests.swift",
        "SnapshotTests.swift",
        "VariationIdTests.swift"
      ],
      "target_dependencies" : [
        "ConfigCat"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ConfigCat",
      "module_type" : "SwiftTarget",
      "name" : "ConfigCat",
      "path" : "Sources/ConfigCat",
      "product_memberships" : [
        "ConfigCat"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Config.swift",
        "ConfigCache.swift",
        "ConfigCatClient.swift",
        "ConfigCatClientProtocol.swift",
        "ConfigCatClientSnapshot.swift",
        "ConfigCatOptions.swift",
        "ConfigCatUser.swift",
        "ConfigFetcher.swift",
        "ConfigService.swift",
        "EvaluationDetails.swift",
        "EvaluationLogger.swift",
        "Extensions.swift",
        "FlagEvaluator.swift",
        "KeyValue.swift",
        "LocalDictionaryDataSource.swift",
        "Log.swift",
        "MutableQueue.swift",
        "Mutex.swift",
        "OverrideBehaviour.swift",
        "OverrideDataSource.swift",
        "PollingMode.swift",
        "PollingModes.swift",
        "RolloutEvaluator.swift",
        "SnapshotBuilder.swift",
        "Synced.swift",
        "Utils.swift"
      ],
      "target_dependencies" : [
        "Version"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.