Build Information
Successful build of ConfigCat, reference master (7709ad
), with Swift 6.1 for macOS (SPM) on 14 Jun 2025 13:57:46 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.63.1
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 7709add Update samples
Cloned https://github.com/configcat/swift-sdk.git
Revision (git rev-parse @):
7709added34832c83545c970a6882efb47cc97cb
SUCCESS checkout https://github.com/configcat/swift-sdk.git at master
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "swift-sdk",
"name": "ConfigCat",
"url": "https://github.com/configcat/swift-sdk.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-sdk",
"dependencies": [
]
}
]
}
Fetching https://github.com/configcat/swift-sdk.git
[1/3326] Fetching swift-sdk
Fetched https://github.com/configcat/swift-sdk.git from cache (0.95s)
Creating working copy for https://github.com/configcat/swift-sdk.git
Working copy of https://github.com/configcat/swift-sdk.git resolved at master (7709add)
warning: '.resolve-product-dependencies': dependency 'swift-sdk' is not used by any target
Found 0 product dependencies
========================================
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
[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 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 | }
[11/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 | }
[12/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 | }
[13/34] Compiling ConfigCat SnapshotBuilder.swift
[14/34] Compiling ConfigCat Synced.swift
[15/34] Compiling ConfigCat ConfigCatClientProtocol.swift
[16/34] Compiling ConfigCat ConfigCatClientSnapshot.swift
[17/34] Compiling ConfigCat ConfigCatOptions.swift
[18/34] Compiling ConfigCat FlagEvaluator.swift
[19/34] Compiling ConfigCat KeyValue.swift
[20/34] Compiling ConfigCat LocalDictionaryDataSource.swift
[21/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
[22/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
[23/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
[24/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 |
[25/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 |
[26/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 |
[27/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 | }
[28/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 | }
[29/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 | }
[30/34] Compiling ConfigCat OverrideBehaviour.swift
[31/34] Compiling ConfigCat OverrideDataSource.swift
[32/34] Compiling ConfigCat PollingMode.swift
[33/34] Compiling ConfigCat PollingModes.swift
[34/34] Compiling ConfigCat RolloutEvaluator.swift
Build complete! (4.96s)
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.