Build Information
Successful build of ConfigCat, reference 11.2.0 (2635fa
), with Swift 6.0 for macOS (SPM) on 1 Dec 2024 21:41:09 UTC.
Swift 6 data race errors: 8
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -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.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/configcat/swift-sdk.git
Reference: 11.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/configcat/swift-sdk
* tag 11.2.0 -> FETCH_HEAD
HEAD is now at 2635fa5 Update ConfigCat.podspec
Cloned https://github.com/configcat/swift-sdk.git
Revision (git rev-parse @):
2635fa55d7f4be65f466cb3a624675ae74a072ad
SUCCESS checkout https://github.com/configcat/swift-sdk.git at 11.2.0
========================================
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/3150] Fetching swift-sdk
Fetched https://github.com/configcat/swift-sdk.git from cache (1.03s)
Creating working copy for https://github.com/configcat/swift-sdk.git
Working copy of https://github.com/configcat/swift-sdk.git resolved at 11.2.0 (2635fa5)
warning: '.resolve-product-dependencies': dependency 'swift-sdk' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
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",
"ConfigCatOptions.swift",
"ConfigCatSnapshot.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",
"Synced.swift",
"Utils.swift"
],
"target_dependencies" : [
"Version"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -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--7754E27361AE5C74.txt
[5/6] Compiling Version Version.swift
[6/6] Emitting module Version
[7/31] 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: annotate 'comparatorTexts' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 | .oneOf: "IS ONE OF",
167 | .notOneOf: "IS NOT ONE OF",
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 defaultUser: ConfigCatUser?
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: annotate 'mutex' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'instances' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'noLogger' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | let log: ConfigCatLogger
23 | let level: ConfigCatLogLevel
[8/33] Compiling ConfigCat Utils.swift
[9/33] Compiling ConfigCat resource_bundle_accessor.swift
[10/33] Compiling ConfigCat FlagEvaluator.swift
[11/33] Compiling ConfigCat KeyValue.swift
[12/33] Compiling ConfigCat LocalDictionaryDataSource.swift
[13/33] Compiling ConfigCat EvaluationDetails.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:67:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
65 | await withUnsafeContinuation { continuation in
66 | getValue(for: key, defaultValue: defaultValue, user: user) { value in
67 | 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
68 | }
69 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:76:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
74 | await withUnsafeContinuation { continuation in
75 | getValue(for: key, defaultValue: defaultValue, user: user) { value in
76 | 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
77 | }
78 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:85:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
83 | await withUnsafeContinuation { continuation in
84 | getValueDetails(for: key, defaultValue: defaultValue, user: user) { details in
85 | 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
86 | }
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:94:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
92 | await withUnsafeContinuation { continuation in
93 | getValueDetails(for: key, defaultValue: defaultValue, user: user) { details in
94 | 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
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:103:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
101 | await withUnsafeContinuation { continuation in
102 | getAllValueDetails(user: user) { details in
103 | 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
104 | }
105 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:121:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
119 | await withUnsafeContinuation { continuation in
120 | getKeyAndValue(for: variationId) { value in
121 | 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
122 | }
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:130:30: warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
128 | await withUnsafeContinuation { continuation in
129 | getAllValues(user: user) { values in
130 | 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
131 | }
132 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:140:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
138 | await withUnsafeContinuation { continuation in
139 | forceRefresh { result in
140 | 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
141 | }
142 | }
[14/33] Compiling ConfigCat EvaluationLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:67:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
65 | await withUnsafeContinuation { continuation in
66 | getValue(for: key, defaultValue: defaultValue, user: user) { value in
67 | 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
68 | }
69 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:76:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
74 | await withUnsafeContinuation { continuation in
75 | getValue(for: key, defaultValue: defaultValue, user: user) { value in
76 | 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
77 | }
78 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:85:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
83 | await withUnsafeContinuation { continuation in
84 | getValueDetails(for: key, defaultValue: defaultValue, user: user) { details in
85 | 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
86 | }
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:94:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
92 | await withUnsafeContinuation { continuation in
93 | getValueDetails(for: key, defaultValue: defaultValue, user: user) { details in
94 | 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
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:103:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
101 | await withUnsafeContinuation { continuation in
102 | getAllValueDetails(user: user) { details in
103 | 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
104 | }
105 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:121:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
119 | await withUnsafeContinuation { continuation in
120 | getKeyAndValue(for: variationId) { value in
121 | 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
122 | }
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:130:30: warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
128 | await withUnsafeContinuation { continuation in
129 | getAllValues(user: user) { values in
130 | 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
131 | }
132 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:140:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
138 | await withUnsafeContinuation { continuation in
139 | forceRefresh { result in
140 | 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
141 | }
142 | }
[15/33] Compiling ConfigCat Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:67:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
65 | await withUnsafeContinuation { continuation in
66 | getValue(for: key, defaultValue: defaultValue, user: user) { value in
67 | 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
68 | }
69 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:76:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
74 | await withUnsafeContinuation { continuation in
75 | getValue(for: key, defaultValue: defaultValue, user: user) { value in
76 | 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
77 | }
78 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:85:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
83 | await withUnsafeContinuation { continuation in
84 | getValueDetails(for: key, defaultValue: defaultValue, user: user) { details in
85 | 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
86 | }
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:94:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
92 | await withUnsafeContinuation { continuation in
93 | getValueDetails(for: key, defaultValue: defaultValue, user: user) { details in
94 | 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
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:103:30: warning: sending 'details' risks causing data races; this is an error in the Swift 6 language mode
101 | await withUnsafeContinuation { continuation in
102 | getAllValueDetails(user: user) { details in
103 | 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
104 | }
105 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:121:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
119 | await withUnsafeContinuation { continuation in
120 | getKeyAndValue(for: variationId) { value in
121 | 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
122 | }
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:130:30: warning: sending 'values' risks causing data races; this is an error in the Swift 6 language mode
128 | await withUnsafeContinuation { continuation in
129 | getAllValues(user: user) { values in
130 | 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
131 | }
132 | }
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Extensions.swift:140:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
138 | await withUnsafeContinuation { continuation in
139 | forceRefresh { result in
140 | 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
141 | }
142 | }
[16/33] 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: annotate 'noLogger' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | let log: ConfigCatLogger
23 | let level: ConfigCatLogLevel
[17/33] 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: annotate 'noLogger' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | let log: ConfigCatLogger
23 | let level: ConfigCatLogLevel
[18/33] 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: annotate 'noLogger' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | let log: ConfigCatLogger
23 | let level: ConfigCatLogLevel
[19/33] Compiling ConfigCat OverrideBehaviour.swift
[20/33] Compiling ConfigCat OverrideDataSource.swift
[21/33] Compiling ConfigCat PollingMode.swift
[22/33] Compiling ConfigCat PollingModes.swift
[23/33] Compiling ConfigCat RolloutEvaluator.swift
[24/33] Compiling ConfigCat Synced.swift
[25/33] Compiling ConfigCat ConfigCatClientProtocol.swift
[26/33] Compiling ConfigCat ConfigCatOptions.swift
[27/33] Compiling ConfigCat ConfigCatSnapshot.swift
[28/33] 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
| `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | }
20 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
[29/33] 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
| `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | }
20 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
[30/33] 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
| `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | }
20 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
[31/33] 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: annotate 'comparatorTexts' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 | .oneOf: "IS ONE OF",
167 | .notOneOf: "IS NOT ONE OF",
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 defaultUser: ConfigCatUser?
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: annotate 'mutex' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'instances' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:361:30: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
359 | }
360 | configService.onReady { state in
361 | 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
362 | }
363 | }
[32/33] 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: annotate 'comparatorTexts' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 | .oneOf: "IS ONE OF",
167 | .notOneOf: "IS NOT ONE OF",
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 defaultUser: ConfigCatUser?
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: annotate 'mutex' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'instances' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:361:30: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
359 | }
360 | configService.onReady { state in
361 | 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
362 | }
363 | }
[33/33] 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: annotate 'comparatorTexts' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
166 | .oneOf: "IS ONE OF",
167 | .notOneOf: "IS NOT ONE OF",
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
341 | }
342 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
271 | }
272 |
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 defaultUser: ConfigCatUser?
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: annotate 'mutex' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'instances' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/ConfigCatClient.swift:361:30: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
359 | }
360 | configService.onReady { state in
361 | 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
362 | }
363 | }
Build complete! (12.03s)
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",
"ConfigCatOptions.swift",
"ConfigCatSnapshot.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",
"Synced.swift",
"Utils.swift"
],
"target_dependencies" : [
"Version"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.