Build Information
Successful build of GrowthBook-IOS, reference 1.1.5 (212ec5), with Swift 6.3 for macOS (SPM) on 30 Apr 2026 09:34:22 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/growthbook/growthbook-swift.git
Reference: 1.1.5
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/growthbook/growthbook-swift
* tag 1.1.5 -> FETCH_HEAD
HEAD is now at 212ec59 fix: restore savedGroups from cache on app restart (#156)
Cloned https://github.com/growthbook/growthbook-swift.git
Revision (git rev-parse @):
212ec59a0274623070eeaad766dcc6457be9b438
SUCCESS checkout https://github.com/growthbook/growthbook-swift.git at 1.1.5
========================================
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",
"traits": [
"default"
],
"dependencies": [
{
"identity": "growthbook-swift",
"name": "GrowthBook-IOS",
"url": "https://github.com/growthbook/growthbook-swift.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/growthbook-swift",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/growthbook/growthbook-swift.git
[1/2635] Fetching growthbook-swift
Fetched https://github.com/growthbook/growthbook-swift.git from cache (1.00s)
Creating working copy for https://github.com/growthbook/growthbook-swift.git
Working copy of https://github.com/growthbook/growthbook-swift.git resolved at 1.1.5 (212ec59)
warning: '.resolve-product-dependencies': dependency 'growthbook-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.3
Building package at path: $PWD
https://github.com/growthbook/growthbook-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--6988338F2F200930.txt
[3/37] Compiling GrowthBook GlobalContext.swift
[4/37] Compiling GrowthBook RemoteEvalModel.swift
[5/37] Compiling GrowthBook StickyAssignmentsDocument.swift
[6/37] Compiling GrowthBook EventHandler.swift
[7/40] Compiling GrowthBook SSEHandler.swift
[8/40] Compiling GrowthBook StickyBucketService.swift
[9/40] Compiling GrowthBook Common.swift
[10/40] Emitting module GrowthBook
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
2 |
3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
4 | @objc public class Feature: NSObject, Codable, Sendable {
| `- warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
4 | @objc public class Feature: NSObject, Codable, Sendable {
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
| `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
7 | /// Array of Rule objects that determine when and how the defaultValue gets overridden
8 | public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
27 | public let id: String?
28 | /// Optional targeting condition
29 | public let condition: JSON?
| `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
29 | public let condition: JSON?
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
| `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
32 | /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
33 | public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
17 | typealias Condition = JSON
18 |
19 | public struct ParentConditionInterface: Codable {
| `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
20 | public let id: String
21 | public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
33 | public let coverage: Float?
34 | /// Immediately force a specific value (ignore every other option besides condition and coverage)
35 | public let force: JSON?
| `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
35 | public let force: JSON?
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
| `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
38 | /// The globally unique tracking key for the experiment (default to the feature key)
39 | public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
41 | public let weights: [Float]?
42 | /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
43 | public let namespace: [JSON]?
| `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
44 | /// What user attribute should be used to assign variations (defaults to id)
45 | public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
55 | public let minBucketVersion: Int?
56 | /// A more precise version of `coverage`
57 | public let range: BucketRange?
| `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
57 | public let range: BucketRange?
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
| `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
59 | public let ranges: [BucketRange]?
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
| `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
| `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 | /// Used to implement holdout groups
116 | let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
61 | public let meta: [VariationMeta]?
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
| `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
64 | /// Seed to use for hashing
65 | public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
| `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 | /// The attribute to use (default to `"id"`)
154 | var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
69 | public let phase: String?
70 | /// Array of tracking calls to fire
71 | public let tracks: [Track]?
| `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
72 |
73 | init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
| `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 | public let experiment: Experiment?
131 | public let result: ExperimentResult?
[11/40] Compiling GrowthBook CachingManager.swift
[12/40] Compiling GrowthBook ContextManager.swift
[13/40] Compiling GrowthBook ConditionEvaluator.swift
[14/40] Compiling GrowthBook ExperimentEvaluator.swift
[15/40] Compiling GrowthBook EvaluationData.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
2 |
3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
4 | @objc public class Feature: NSObject, Codable, Sendable {
| `- warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
4 | @objc public class Feature: NSObject, Codable, Sendable {
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
| `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
7 | /// Array of Rule objects that determine when and how the defaultValue gets overridden
8 | public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
27 | public let id: String?
28 | /// Optional targeting condition
29 | public let condition: JSON?
| `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
29 | public let condition: JSON?
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
| `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
32 | /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
33 | public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
17 | typealias Condition = JSON
18 |
19 | public struct ParentConditionInterface: Codable {
| `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
20 | public let id: String
21 | public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
33 | public let coverage: Float?
34 | /// Immediately force a specific value (ignore every other option besides condition and coverage)
35 | public let force: JSON?
| `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
35 | public let force: JSON?
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
| `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
38 | /// The globally unique tracking key for the experiment (default to the feature key)
39 | public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
41 | public let weights: [Float]?
42 | /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
43 | public let namespace: [JSON]?
| `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
44 | /// What user attribute should be used to assign variations (defaults to id)
45 | public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
55 | public let minBucketVersion: Int?
56 | /// A more precise version of `coverage`
57 | public let range: BucketRange?
| `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
57 | public let range: BucketRange?
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
| `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
59 | public let ranges: [BucketRange]?
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
| `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
| `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 | /// Used to implement holdout groups
116 | let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
61 | public let meta: [VariationMeta]?
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
| `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
64 | /// Seed to use for hashing
65 | public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
| `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 | /// The attribute to use (default to `"id"`)
154 | var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
69 | public let phase: String?
70 | /// Array of tracking calls to fire
71 | public let tracks: [Track]?
| `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
72 |
73 | init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
| `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 | public let experiment: Experiment?
131 | public let result: ExperimentResult?
[16/40] Compiling GrowthBook Experiment.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
2 |
3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
4 | @objc public class Feature: NSObject, Codable, Sendable {
| `- warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
4 | @objc public class Feature: NSObject, Codable, Sendable {
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
| `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
7 | /// Array of Rule objects that determine when and how the defaultValue gets overridden
8 | public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
27 | public let id: String?
28 | /// Optional targeting condition
29 | public let condition: JSON?
| `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
29 | public let condition: JSON?
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
| `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
32 | /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
33 | public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
17 | typealias Condition = JSON
18 |
19 | public struct ParentConditionInterface: Codable {
| `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
20 | public let id: String
21 | public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
33 | public let coverage: Float?
34 | /// Immediately force a specific value (ignore every other option besides condition and coverage)
35 | public let force: JSON?
| `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
35 | public let force: JSON?
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
| `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
38 | /// The globally unique tracking key for the experiment (default to the feature key)
39 | public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
41 | public let weights: [Float]?
42 | /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
43 | public let namespace: [JSON]?
| `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
44 | /// What user attribute should be used to assign variations (defaults to id)
45 | public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
55 | public let minBucketVersion: Int?
56 | /// A more precise version of `coverage`
57 | public let range: BucketRange?
| `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
57 | public let range: BucketRange?
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
| `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
59 | public let ranges: [BucketRange]?
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
| `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
| `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 | /// Used to implement holdout groups
116 | let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
61 | public let meta: [VariationMeta]?
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
| `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
64 | /// Seed to use for hashing
65 | public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
| `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 | /// The attribute to use (default to `"id"`)
154 | var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
69 | public let phase: String?
70 | /// Array of tracking calls to fire
71 | public let tracks: [Track]?
| `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
72 |
73 | init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
| `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 | public let experiment: Experiment?
131 | public let result: ExperimentResult?
[17/40] Compiling GrowthBook Feature.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
2 |
3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
4 | @objc public class Feature: NSObject, Codable, Sendable {
| `- warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
4 | @objc public class Feature: NSObject, Codable, Sendable {
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
| `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
7 | /// Array of Rule objects that determine when and how the defaultValue gets overridden
8 | public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
27 | public let id: String?
28 | /// Optional targeting condition
29 | public let condition: JSON?
| `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
29 | public let condition: JSON?
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
| `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
32 | /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
33 | public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
17 | typealias Condition = JSON
18 |
19 | public struct ParentConditionInterface: Codable {
| `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
20 | public let id: String
21 | public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
33 | public let coverage: Float?
34 | /// Immediately force a specific value (ignore every other option besides condition and coverage)
35 | public let force: JSON?
| `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
35 | public let force: JSON?
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
| `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
38 | /// The globally unique tracking key for the experiment (default to the feature key)
39 | public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
41 | public let weights: [Float]?
42 | /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
43 | public let namespace: [JSON]?
| `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
44 | /// What user attribute should be used to assign variations (defaults to id)
45 | public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
55 | public let minBucketVersion: Int?
56 | /// A more precise version of `coverage`
57 | public let range: BucketRange?
| `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
57 | public let range: BucketRange?
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
| `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
59 | public let ranges: [BucketRange]?
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
| `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
| `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 | /// Used to implement holdout groups
116 | let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
61 | public let meta: [VariationMeta]?
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
| `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
64 | /// Seed to use for hashing
65 | public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
| `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 | /// The attribute to use (default to `"id"`)
154 | var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
69 | public let phase: String?
70 | /// Array of tracking calls to fire
71 | public let tracks: [Track]?
| `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
72 |
73 | init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
| `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 | public let experiment: Experiment?
131 | public let result: ExperimentResult?
[18/40] Compiling GrowthBook GlobalConfig.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
2 |
3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
4 | @objc public class Feature: NSObject, Codable, Sendable {
| `- warning: non-final class 'Feature' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
4 | @objc public class Feature: NSObject, Codable, Sendable {
5 | /// The default value (should use null if not specified)
6 | public let defaultValue: JSON?
| `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
7 | /// Array of Rule objects that determine when and how the defaultValue gets overridden
8 | public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
27 | public let id: String?
28 | /// Optional targeting condition
29 | public let condition: JSON?
| `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
29 | public let condition: JSON?
30 | /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
31 | public let parentConditions: [ParentConditionInterface]?
| `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'ParentConditionInterface'; this is an error in the Swift 6 language mode
32 | /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
33 | public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
17 | typealias Condition = JSON
18 |
19 | public struct ParentConditionInterface: Codable {
| `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
20 | public let id: String
21 | public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
33 | public let coverage: Float?
34 | /// Immediately force a specific value (ignore every other option besides condition and coverage)
35 | public let force: JSON?
| `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
35 | public let force: JSON?
36 | /// Run an experiment (A/B test) and randomly choose between these variations
37 | public let variations: [JSON]?
| `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
38 | /// The globally unique tracking key for the experiment (default to the feature key)
39 | public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
41 | public let weights: [Float]?
42 | /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
43 | public let namespace: [JSON]?
| `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'JSON'; this is an error in the Swift 6 language mode
44 | /// What user attribute should be used to assign variations (defaults to id)
45 | public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
51 | // MARK: - JSON Base
52 |
53 | public struct JSON {
| `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
54 |
55 | /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
55 | public let minBucketVersion: Int?
56 | /// A more precise version of `coverage`
57 | public let range: BucketRange?
| `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
57 | public let range: BucketRange?
58 | /// Ranges for experiment variations
59 | public let ranges: [BucketRange]?
| `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'BucketRange'; this is an error in the Swift 6 language mode
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
46 |
47 | /// Double Struct for GrowthBook Ranges
48 | public struct BucketRange: Codable {
| `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
49 | let number1: Float
50 | let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
59 | public let ranges: [BucketRange]?
60 | /// Meta info about the experiment variations
61 | public let meta: [VariationMeta]?
| `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'VariationMeta'; this is an error in the Swift 6 language mode
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
| `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 | /// Used to implement holdout groups
116 | let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
61 | public let meta: [VariationMeta]?
62 | /// Array of filters to apply to the rule
63 | public let filters: [Filter]?
| `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Filter'; this is an error in the Swift 6 language mode
64 | /// Seed to use for hashing
65 | public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
| `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 | /// The attribute to use (default to `"id"`)
154 | var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
69 | public let phase: String?
70 | /// Array of tracking calls to fire
71 | public let tracks: [Track]?
| `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' contains non-Sendable type 'Track'; this is an error in the Swift 6 language mode
72 |
73 | init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
| `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 | public let experiment: Experiment?
131 | public let result: ExperimentResult?
[19/40] Compiling GrowthBook ExperimentHelper.swift
[20/40] Compiling GrowthBook FeatureEvaluator.swift
[21/40] Compiling GrowthBook FeaturesDataModel.swift
[22/40] Compiling GrowthBook FeaturesDataSource.swift
[23/40] Compiling GrowthBook FeaturesViewModel.swift
[24/40] Compiling GrowthBook GrowthBookModel.swift
[25/40] Compiling GrowthBook GrowthBookSDK.swift
[26/40] Compiling GrowthBook JsonManager.swift
[27/40] Compiling GrowthBook Formatter.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
54 |
55 | scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
56 | scanner.scanHexInt32(&hex)
| `- warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
57 |
58 | let r = (hex & 0xFF0000) >> 16
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[28/40] Compiling GrowthBook LoggingManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
54 |
55 | scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
56 | scanner.scanHexInt32(&hex)
| `- warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
57 |
58 | let r = (hex & 0xFF0000) >> 16
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[29/40] Compiling GrowthBook Theme.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
54 |
55 | scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
56 | scanner.scanHexInt32(&hex)
| `- warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
57 |
58 | let r = (hex & 0xFF0000) >> 16
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[30/40] Compiling GrowthBook Context.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
54 |
55 | scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
56 | scanner.scanHexInt32(&hex)
| `- warning: 'scanHexInt32' was deprecated in macOS 10.15 [#DeprecatedDeclaration]
57 |
58 | let r = (hex & 0xFF0000) >> 16
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[31/40] Compiling GrowthBook Constants.swift
[32/40] Compiling GrowthBook Crypto.swift
[33/40] Compiling GrowthBook DecryptionUtils.swift
[34/40] Compiling GrowthBook EventModel.swift
[35/40] Compiling GrowthBook LruETagCache.swift
[36/40] Compiling GrowthBook NetworkClient.swift
[37/40] Compiling GrowthBook NetworkRetryHandler.swift
[38/40] Compiling GrowthBook Extensions.swift
[39/40] Compiling GrowthBook Logger.swift
[40/40] Compiling GrowthBook Utils.swift
Build complete! (7.15s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "GrowthBook-IOS",
"name" : "GrowthBook-IOS",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "5.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "GrowthBook-IOS",
"targets" : [
"GrowthBook"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "GrowthBookTests",
"module_type" : "SwiftTarget",
"name" : "GrowthBookTests",
"path" : "GrowthBookTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/GrowthBookTests/Source/json.json",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"BackgroundSyncTest.swift",
"CachingManagerTest.swift",
"ConditionTests.swift",
"ContextManagerTests.swift",
"CryptoTests.swift",
"ExperimentRunTests.swift",
"FeatureValueTests.swift",
"FeaturesViewModelTests.swift",
"GrowthBookSDKBuilderTests.swift",
"LruETagCacheTests.swift",
"MockNetworkClient.swift",
"ModelTests.swift",
"StickyBucketingTests.swift",
"TestHelper.swift",
"UtilsTests.swift"
],
"target_dependencies" : [
"GrowthBook"
],
"type" : "test"
},
{
"c99name" : "GrowthBook",
"module_type" : "SwiftTarget",
"name" : "GrowthBook",
"path" : "Sources/CommonMain",
"product_memberships" : [
"GrowthBook-IOS"
],
"sources" : [
"Caching/CachingManager.swift",
"ContextManager.swift",
"Evaluators/ConditionEvaluator.swift",
"Evaluators/ExperimentEvaluator.swift",
"Evaluators/ExperimentHelper.swift",
"Evaluators/FeatureEvaluator.swift",
"Features/FeaturesDataModel.swift",
"Features/FeaturesDataSource.swift",
"Features/FeaturesViewModel.swift",
"GrowthBookModel.swift",
"GrowthBookSDK.swift",
"JsonManager/JsonManager.swift",
"LoggingManager/Formatter.swift",
"LoggingManager/LoggingManager.swift",
"LoggingManager/Theme.swift",
"Model/Context.swift",
"Model/EvaluationData.swift",
"Model/Experiment.swift",
"Model/Feature.swift",
"Model/GlobalConfig.swift",
"Model/GlobalContext.swift",
"Model/RemoteEvalModel.swift",
"Model/StickyAssignmentsDocument.swift",
"Network/EventHandler.swift",
"Network/EventModel.swift",
"Network/LruETagCache.swift",
"Network/NetworkClient.swift",
"Network/NetworkRetryHandler.swift",
"Network/SSEHandler.swift",
"StickyBucket/StickyBucketService.swift",
"Utils/Common.swift",
"Utils/Constants.swift",
"Utils/Crypto.swift",
"Utils/DecryptionUtils.swift",
"Utils/Extensions.swift",
"Utils/Logger.swift",
"Utils/Utils.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.