The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Optimizely, reference master (bb30e0), with Swift 6.1 for macOS (SPM) on 23 Apr 2026 14:12:46 UTC.

Swift 6 data race errors: 10

Build Command

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

Build Log

/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:244:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
242 |         let now = Date()
243 |         DispatchQueue.main.async {
244 |             if let timer = self.timers.property?[sdkKey]?.timer, timer.isValid {
    |                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
245 |                 return
246 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                         `- note: task-isolated 'datafileChangeNotification' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:300:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
298 |         DispatchQueue.main.async {
299 |             // should check here again
300 |             guard self.timer.property == nil else { return }
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
[79/102] Compiling Optimizely DefaultLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:61: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                             `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:139:33: warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
139 |                                 attemptFetch()
    |                                 |- warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 |                             }
141 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:33: warning: mutation of captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                 `- warning: mutation of captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:47: warning: reference to captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                               `- warning: reference to captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:104: warning: reference to captured var 'attempt' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                                                                        `- warning: reference to captured var 'attempt' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:121:14: warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
119 |         var backoff = retryConfig.initialBackoff
120 |
121 |         func attemptFetch() {
    |              `- warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
122 |             doFetch(url: url, requestBody: requestBody, timeout: timeout) { result in
123 |                 switch result {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:173:17: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
171 |         let task = session.dataTask(with: request) { data, response, error in
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
175 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:174:17: warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
175 |                 return
176 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:67:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
 65 |
 66 |                 let result = OptimizelyResult<Data?>.failure(optError)
 67 |                 completionHandler(returnCached(result))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 68 |                 return
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:82:21: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 80 |                 if error != nil {
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
    |                     `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 83 |                     result = returnCached(.failure(optError))  // error recovery
 84 |                 } else if let response = response as? HTTPURLResponse {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:83:30: warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
 83 |                     result = returnCached(.failure(optError))  // error recovery
    |                              |- warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |                 } else if let response = response as? HTTPURLResponse {
 85 |                     switch response.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:108:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
106 |                 self.reachability.updateNumContiguousFails(isError: (error != nil))
107 |
108 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |             }
110 |
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:54:18: warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 52 |         downloadQueue.async {
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
    |                  `- warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
 56 |                     return .success(data)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:249:17: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
247 |
248 |             let timer = Timer.scheduledTimer(withTimeInterval: TimeInterval(updateInterval), repeats: false) { (timer) in
249 |                 self.performPerodicDownload(sdkKey: sdkKey,
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
    |                                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:24:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     // timer-interval for batching (0 = no batching, negative = use default)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:120:20: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
118 |     open func flushEvents() {
119 |         queueLock.async {
120 |             guard !self.isFlushing else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
121 |
122 |             self.isFlushing = true
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:175:25: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
173 |                     let delay = self.calculateRetryDelay(attempt: attempt)
174 |                     self.queueLock.asyncAfter(deadline: .now() + delay) {
175 |                         self.processNextBatch(failureCount: attempt)
    |                         `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
176 |                     }
177 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:240:17: warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
238 |         let task = session.uploadTask(with: request, from: event.body) { (_, _, error) in
239 |             if let error = error {
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 |             } else {
242 |                 self.logger.d("Event Sent")
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:242:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
241 |             } else {
242 |                 self.logger.d("Event Sent")
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
243 |                 completionHandler(.success(event.body))
244 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:243:44: warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
241 |             } else {
242 |                 self.logger.d("Event Sent")
243 |                 completionHandler(.success(event.body))
    |                                            `- warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
244 |             }
245 |
/Users/admin/builder/spi-builder-workspace/Sources/Data Model/DispatchEvents/EventForDispatch.swift:19:27: note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
17 | import Foundation
18 |
19 | @objcMembers public class EventForDispatch: NSObject, Codable {
   |                           `- note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
20 |     public static var eventEndpoint = "https://logx.optimizely.com/v1/events"
21 |     public static var euEventEndpoint = "https://eu.logx.optimizely.com/v1/events"
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:303:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
304 |                     if self.eventQueue.count > 0 {
305 |                         self.flushEvents()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:304:24: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
304 |                     if self.eventQueue.count > 0 {
    |                        `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
305 |                         self.flushEvents()
306 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultLogger.swift:21:24: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 | open class DefaultLogger: OPTLogger {
21 |     private static var _logLevel: OptimizelyLogLevel?
   |                        |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static var logLevel: OptimizelyLogLevel {
23 |         get {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:83:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 81 |     public required init() {
 82 |         lock.async {
 83 |             self.profiles = UserDefaults.standard.dictionary(forKey: self.kStorageName) as? UserProfileData ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 84 |
 85 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:38: warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |                                      `- warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:29: warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |                             `- warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:244:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
242 |         let now = Date()
243 |         DispatchQueue.main.async {
244 |             if let timer = self.timers.property?[sdkKey]?.timer, timer.isValid {
    |                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
245 |                 return
246 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                         `- note: task-isolated 'datafileChangeNotification' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:300:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
298 |         DispatchQueue.main.async {
299 |             // should check here again
300 |             guard self.timer.property == nil else { return }
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
[80/102] Compiling Optimizely DefaultUserProfileService.swift
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:61: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                             `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:139:33: warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
139 |                                 attemptFetch()
    |                                 |- warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 |                             }
141 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:33: warning: mutation of captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                 `- warning: mutation of captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:47: warning: reference to captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                               `- warning: reference to captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:104: warning: reference to captured var 'attempt' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                                                                        `- warning: reference to captured var 'attempt' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:121:14: warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
119 |         var backoff = retryConfig.initialBackoff
120 |
121 |         func attemptFetch() {
    |              `- warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
122 |             doFetch(url: url, requestBody: requestBody, timeout: timeout) { result in
123 |                 switch result {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:173:17: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
171 |         let task = session.dataTask(with: request) { data, response, error in
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
175 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:174:17: warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
175 |                 return
176 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:67:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
 65 |
 66 |                 let result = OptimizelyResult<Data?>.failure(optError)
 67 |                 completionHandler(returnCached(result))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 68 |                 return
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:82:21: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 80 |                 if error != nil {
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
    |                     `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 83 |                     result = returnCached(.failure(optError))  // error recovery
 84 |                 } else if let response = response as? HTTPURLResponse {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:83:30: warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
 83 |                     result = returnCached(.failure(optError))  // error recovery
    |                              |- warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |                 } else if let response = response as? HTTPURLResponse {
 85 |                     switch response.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:108:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
106 |                 self.reachability.updateNumContiguousFails(isError: (error != nil))
107 |
108 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |             }
110 |
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:54:18: warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 52 |         downloadQueue.async {
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
    |                  `- warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
 56 |                     return .success(data)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:249:17: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
247 |
248 |             let timer = Timer.scheduledTimer(withTimeInterval: TimeInterval(updateInterval), repeats: false) { (timer) in
249 |                 self.performPerodicDownload(sdkKey: sdkKey,
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
    |                                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:24:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     // timer-interval for batching (0 = no batching, negative = use default)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:120:20: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
118 |     open func flushEvents() {
119 |         queueLock.async {
120 |             guard !self.isFlushing else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
121 |
122 |             self.isFlushing = true
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:175:25: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
173 |                     let delay = self.calculateRetryDelay(attempt: attempt)
174 |                     self.queueLock.asyncAfter(deadline: .now() + delay) {
175 |                         self.processNextBatch(failureCount: attempt)
    |                         `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
176 |                     }
177 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:240:17: warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
238 |         let task = session.uploadTask(with: request, from: event.body) { (_, _, error) in
239 |             if let error = error {
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 |             } else {
242 |                 self.logger.d("Event Sent")
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:242:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
241 |             } else {
242 |                 self.logger.d("Event Sent")
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
243 |                 completionHandler(.success(event.body))
244 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:243:44: warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
241 |             } else {
242 |                 self.logger.d("Event Sent")
243 |                 completionHandler(.success(event.body))
    |                                            `- warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
244 |             }
245 |
/Users/admin/builder/spi-builder-workspace/Sources/Data Model/DispatchEvents/EventForDispatch.swift:19:27: note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
17 | import Foundation
18 |
19 | @objcMembers public class EventForDispatch: NSObject, Codable {
   |                           `- note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
20 |     public static var eventEndpoint = "https://logx.optimizely.com/v1/events"
21 |     public static var euEventEndpoint = "https://eu.logx.optimizely.com/v1/events"
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:303:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
304 |                     if self.eventQueue.count > 0 {
305 |                         self.flushEvents()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:304:24: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
304 |                     if self.eventQueue.count > 0 {
    |                        `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
305 |                         self.flushEvents()
306 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultLogger.swift:21:24: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 | open class DefaultLogger: OPTLogger {
21 |     private static var _logLevel: OptimizelyLogLevel?
   |                        |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static var logLevel: OptimizelyLogLevel {
23 |         get {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:83:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 81 |     public required init() {
 82 |         lock.async {
 83 |             self.profiles = UserDefaults.standard.dictionary(forKey: self.kStorageName) as? UserProfileData ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 84 |
 85 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:38: warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |                                      `- warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:29: warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |                             `- warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:244:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
242 |         let now = Date()
243 |         DispatchQueue.main.async {
244 |             if let timer = self.timers.property?[sdkKey]?.timer, timer.isValid {
    |                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
245 |                 return
246 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                         `- note: task-isolated 'datafileChangeNotification' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:300:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
298 |         DispatchQueue.main.async {
299 |             // should check here again
300 |             guard self.timer.property == nil else { return }
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
[81/102] Compiling Optimizely OPTDatafileHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:61: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                             `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:139:33: warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
139 |                                 attemptFetch()
    |                                 |- warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 |                             }
141 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:33: warning: mutation of captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                 `- warning: mutation of captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:47: warning: reference to captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                               `- warning: reference to captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:104: warning: reference to captured var 'attempt' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                                                                        `- warning: reference to captured var 'attempt' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:121:14: warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
119 |         var backoff = retryConfig.initialBackoff
120 |
121 |         func attemptFetch() {
    |              `- warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
122 |             doFetch(url: url, requestBody: requestBody, timeout: timeout) { result in
123 |                 switch result {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:173:17: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
171 |         let task = session.dataTask(with: request) { data, response, error in
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
175 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:174:17: warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
175 |                 return
176 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:67:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
 65 |
 66 |                 let result = OptimizelyResult<Data?>.failure(optError)
 67 |                 completionHandler(returnCached(result))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 68 |                 return
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:82:21: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 80 |                 if error != nil {
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
    |                     `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 83 |                     result = returnCached(.failure(optError))  // error recovery
 84 |                 } else if let response = response as? HTTPURLResponse {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:83:30: warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
 83 |                     result = returnCached(.failure(optError))  // error recovery
    |                              |- warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |                 } else if let response = response as? HTTPURLResponse {
 85 |                     switch response.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:108:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
106 |                 self.reachability.updateNumContiguousFails(isError: (error != nil))
107 |
108 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |             }
110 |
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:54:18: warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 52 |         downloadQueue.async {
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
    |                  `- warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
 56 |                     return .success(data)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:249:17: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
247 |
248 |             let timer = Timer.scheduledTimer(withTimeInterval: TimeInterval(updateInterval), repeats: false) { (timer) in
249 |                 self.performPerodicDownload(sdkKey: sdkKey,
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
    |                                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:24:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     // timer-interval for batching (0 = no batching, negative = use default)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:120:20: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
118 |     open func flushEvents() {
119 |         queueLock.async {
120 |             guard !self.isFlushing else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
121 |
122 |             self.isFlushing = true
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:175:25: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
173 |                     let delay = self.calculateRetryDelay(attempt: attempt)
174 |                     self.queueLock.asyncAfter(deadline: .now() + delay) {
175 |                         self.processNextBatch(failureCount: attempt)
    |                         `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
176 |                     }
177 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:240:17: warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
238 |         let task = session.uploadTask(with: request, from: event.body) { (_, _, error) in
239 |             if let error = error {
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 |             } else {
242 |                 self.logger.d("Event Sent")
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:242:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
241 |             } else {
242 |                 self.logger.d("Event Sent")
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
243 |                 completionHandler(.success(event.body))
244 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:243:44: warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
241 |             } else {
242 |                 self.logger.d("Event Sent")
243 |                 completionHandler(.success(event.body))
    |                                            `- warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
244 |             }
245 |
/Users/admin/builder/spi-builder-workspace/Sources/Data Model/DispatchEvents/EventForDispatch.swift:19:27: note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
17 | import Foundation
18 |
19 | @objcMembers public class EventForDispatch: NSObject, Codable {
   |                           `- note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
20 |     public static var eventEndpoint = "https://logx.optimizely.com/v1/events"
21 |     public static var euEventEndpoint = "https://eu.logx.optimizely.com/v1/events"
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:303:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
304 |                     if self.eventQueue.count > 0 {
305 |                         self.flushEvents()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:304:24: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
304 |                     if self.eventQueue.count > 0 {
    |                        `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
305 |                         self.flushEvents()
306 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultLogger.swift:21:24: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 | open class DefaultLogger: OPTLogger {
21 |     private static var _logLevel: OptimizelyLogLevel?
   |                        |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static var logLevel: OptimizelyLogLevel {
23 |         get {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:83:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 81 |     public required init() {
 82 |         lock.async {
 83 |             self.profiles = UserDefaults.standard.dictionary(forKey: self.kStorageName) as? UserProfileData ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 84 |
 85 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:38: warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |                                      `- warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:29: warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |                             `- warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:244:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
242 |         let now = Date()
243 |         DispatchQueue.main.async {
244 |             if let timer = self.timers.property?[sdkKey]?.timer, timer.isValid {
    |                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
245 |                 return
246 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                         `- note: task-isolated 'datafileChangeNotification' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:300:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
298 |         DispatchQueue.main.async {
299 |             // should check here again
300 |             guard self.timer.property == nil else { return }
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
[82/102] Compiling Optimizely OPTEventDispatcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:61: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                             `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:139:33: warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
139 |                                 attemptFetch()
    |                                 |- warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 |                             }
141 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:33: warning: mutation of captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                 `- warning: mutation of captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:47: warning: reference to captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                               `- warning: reference to captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:104: warning: reference to captured var 'attempt' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                                                                        `- warning: reference to captured var 'attempt' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:121:14: warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
119 |         var backoff = retryConfig.initialBackoff
120 |
121 |         func attemptFetch() {
    |              `- warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
122 |             doFetch(url: url, requestBody: requestBody, timeout: timeout) { result in
123 |                 switch result {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:173:17: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
171 |         let task = session.dataTask(with: request) { data, response, error in
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
175 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:174:17: warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
175 |                 return
176 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:67:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
 65 |
 66 |                 let result = OptimizelyResult<Data?>.failure(optError)
 67 |                 completionHandler(returnCached(result))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 68 |                 return
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:82:21: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 80 |                 if error != nil {
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
    |                     `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 83 |                     result = returnCached(.failure(optError))  // error recovery
 84 |                 } else if let response = response as? HTTPURLResponse {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:83:30: warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
 83 |                     result = returnCached(.failure(optError))  // error recovery
    |                              |- warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |                 } else if let response = response as? HTTPURLResponse {
 85 |                     switch response.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:108:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
106 |                 self.reachability.updateNumContiguousFails(isError: (error != nil))
107 |
108 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |             }
110 |
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:54:18: warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 52 |         downloadQueue.async {
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
    |                  `- warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
 56 |                     return .success(data)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:249:17: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
247 |
248 |             let timer = Timer.scheduledTimer(withTimeInterval: TimeInterval(updateInterval), repeats: false) { (timer) in
249 |                 self.performPerodicDownload(sdkKey: sdkKey,
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
    |                                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:24:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     // timer-interval for batching (0 = no batching, negative = use default)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:120:20: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
118 |     open func flushEvents() {
119 |         queueLock.async {
120 |             guard !self.isFlushing else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
121 |
122 |             self.isFlushing = true
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:175:25: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
173 |                     let delay = self.calculateRetryDelay(attempt: attempt)
174 |                     self.queueLock.asyncAfter(deadline: .now() + delay) {
175 |                         self.processNextBatch(failureCount: attempt)
    |                         `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
176 |                     }
177 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:240:17: warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
238 |         let task = session.uploadTask(with: request, from: event.body) { (_, _, error) in
239 |             if let error = error {
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 |             } else {
242 |                 self.logger.d("Event Sent")
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:242:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
241 |             } else {
242 |                 self.logger.d("Event Sent")
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
243 |                 completionHandler(.success(event.body))
244 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:243:44: warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
241 |             } else {
242 |                 self.logger.d("Event Sent")
243 |                 completionHandler(.success(event.body))
    |                                            `- warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
244 |             }
245 |
/Users/admin/builder/spi-builder-workspace/Sources/Data Model/DispatchEvents/EventForDispatch.swift:19:27: note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
17 | import Foundation
18 |
19 | @objcMembers public class EventForDispatch: NSObject, Codable {
   |                           `- note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
20 |     public static var eventEndpoint = "https://logx.optimizely.com/v1/events"
21 |     public static var euEventEndpoint = "https://eu.logx.optimizely.com/v1/events"
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:303:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
304 |                     if self.eventQueue.count > 0 {
305 |                         self.flushEvents()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:304:24: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
304 |                     if self.eventQueue.count > 0 {
    |                        `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
305 |                         self.flushEvents()
306 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultLogger.swift:21:24: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 | open class DefaultLogger: OPTLogger {
21 |     private static var _logLevel: OptimizelyLogLevel?
   |                        |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static var logLevel: OptimizelyLogLevel {
23 |         get {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:83:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 81 |     public required init() {
 82 |         lock.async {
 83 |             self.profiles = UserDefaults.standard.dictionary(forKey: self.kStorageName) as? UserProfileData ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 84 |
 85 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:38: warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |                                      `- warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:29: warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |                             `- warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:244:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
242 |         let now = Date()
243 |         DispatchQueue.main.async {
244 |             if let timer = self.timers.property?[sdkKey]?.timer, timer.isValid {
    |                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
245 |                 return
246 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                         `- note: task-isolated 'datafileChangeNotification' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:300:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
298 |         DispatchQueue.main.async {
299 |             // should check here again
300 |             guard self.timer.property == nil else { return }
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
[83/102] Compiling Optimizely OPTLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:61: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                             `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:139:33: warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
139 |                                 attemptFetch()
    |                                 |- warning: capture of 'attemptFetch()' with non-sendable type '() -> ()' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 |                             }
141 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:33: warning: mutation of captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                 `- warning: mutation of captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:47: warning: reference to captured var 'backoff' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                               `- warning: reference to captured var 'backoff' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:138:104: warning: reference to captured var 'attempt' in concurrently-executing code
136 |                             attempt += 1
137 |                             self.cmabQueue.asyncAfter(deadline: .now() + backoff) {
138 |                                 backoff = min(backoff * pow(self.retryConfig.backoffMultiplier, Double(attempt)), self.retryConfig.maxBackoff)
    |                                                                                                        `- warning: reference to captured var 'attempt' in concurrently-executing code
139 |                                 attemptFetch()
140 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:121:14: warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
119 |         var backoff = retryConfig.initialBackoff
120 |
121 |         func attemptFetch() {
    |              `- warning: concurrently-executed local function 'attemptFetch()' must be marked as '@Sendable'
122 |             doFetch(url: url, requestBody: requestBody, timeout: timeout) { result in
123 |                 switch result {
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:173:17: warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
 49 | }
 50 |
 51 | class DefaultCmabClient: CmabClient {
    |       `- note: class 'DefaultCmabClient' does not conform to the 'Sendable' protocol
 52 |     let session: URLSession
 53 |     let retryConfig: CmabRetryConfig
    :
171 |         let task = session.dataTask(with: request) { data, response, error in
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultCmabClient' in a '@Sendable' closure
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
175 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/CMAB/CmabClient.swift:174:17: warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
172 |             if let error = error {
173 |                 self.logger.e(error.localizedDescription)
174 |                 completion(.failure(CmabClientError.fetchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<String, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
175 |                 return
176 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:67:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
 65 |
 66 |                 let result = OptimizelyResult<Data?>.failure(optError)
 67 |                 completionHandler(returnCached(result))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 68 |                 return
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:55:31: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
    |                               `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in an isolated local function; this is an error in the Swift 6 language mode
 56 |                     return .success(data)
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:82:21: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
 80 |                 if error != nil {
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
    |                     `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 83 |                     result = returnCached(.failure(optError))  // error recovery
 84 |                 } else if let response = response as? HTTPURLResponse {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:83:30: warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
 81 |                     let optError = OptimizelyError.datafileDownloadFailed(error.debugDescription)
 82 |                     self.logger.e(optError)
 83 |                     result = returnCached(.failure(optError))  // error recovery
    |                              |- warning: capture of 'returnCached' with non-sendable type '(OptimizelyResult<Data?>?) -> OptimizelyResult<Data?>' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |                 } else if let response = response as? HTTPURLResponse {
 85 |                     switch response.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:108:17: warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
106 |                 self.reachability.updateNumContiguousFails(isError: (error != nil))
107 |
108 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DatafileDownloadCompletionHandler' (aka '(OptimizelyResult<Optional<Data>>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |             }
110 |
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:54:18: warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 52 |         downloadQueue.async {
 53 |
 54 |             func returnCached(_ result: OptimizelyResult<Data?>? = nil) -> OptimizelyResult<Data?> {
    |                  `- warning: concurrently-executed local function 'returnCached' must be marked as '@Sendable'
 55 |                 if let data = self.loadSavedDatafile(sdkKey: sdkKey) {
 56 |                     return .success(data)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:249:17: warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
 17 | import Foundation
 18 |
 19 | open class DefaultDatafileHandler: OPTDatafileHandler {
    |            `- note: class 'DefaultDatafileHandler' does not conform to the 'Sendable' protocol
 20 |     // endpoint used to get the datafile.  This is settable after you create a OptimizelyClient instance.
 21 |     public var endPointStringFormat = "https://cdn.optimizely.com/datafiles/%@.json"
    :
247 |
248 |             let timer = Timer.scheduledTimer(withTimeInterval: TimeInterval(updateInterval), repeats: false) { (timer) in
249 |                 self.performPerodicDownload(sdkKey: sdkKey,
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultDatafileHandler' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: capture of 'datafileChangeNotification' with non-sendable type '((Data) -> Void)?' in a '@Sendable' closure
    |                                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:24:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'DefaultEventDispatcher' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     // timer-interval for batching (0 = no batching, negative = use default)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:120:20: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
118 |     open func flushEvents() {
119 |         queueLock.async {
120 |             guard !self.isFlushing else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
121 |
122 |             self.isFlushing = true
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:175:25: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
173 |                     let delay = self.calculateRetryDelay(attempt: attempt)
174 |                     self.queueLock.asyncAfter(deadline: .now() + delay) {
175 |                         self.processNextBatch(failureCount: attempt)
    |                         `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
176 |                     }
177 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:240:17: warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
238 |         let task = session.uploadTask(with: request, from: event.body) { (_, _, error) in
239 |             if let error = error {
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
    |                 |- warning: capture of 'completionHandler' with non-sendable type 'DispatchCompletionHandler' (aka '(OptimizelyResult<Data>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 |             } else {
242 |                 self.logger.d("Event Sent")
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:242:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
240 |                 completionHandler(.failure(.eventDispatchFailed(error.localizedDescription)))
241 |             } else {
242 |                 self.logger.d("Event Sent")
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
243 |                 completionHandler(.success(event.body))
244 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:243:44: warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
241 |             } else {
242 |                 self.logger.d("Event Sent")
243 |                 completionHandler(.success(event.body))
    |                                            `- warning: capture of 'event' with non-sendable type 'EventForDispatch' in a '@Sendable' closure
244 |             }
245 |
/Users/admin/builder/spi-builder-workspace/Sources/Data Model/DispatchEvents/EventForDispatch.swift:19:27: note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
17 | import Foundation
18 |
19 | @objcMembers public class EventForDispatch: NSObject, Codable {
   |                           `- note: class 'EventForDispatch' does not conform to the 'Sendable' protocol
20 |     public static var eventEndpoint = "https://logx.optimizely.com/v1/events"
21 |     public static var euEventEndpoint = "https://eu.logx.optimizely.com/v1/events"
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:303:17: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
    |                 `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
304 |                     if self.eventQueue.count > 0 {
305 |                         self.flushEvents()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:304:24: warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
 21 | }
 22 |
 23 | open class DefaultEventDispatcher: BackgroundingCallbacks, OPTEventDispatcher {
    |            `- note: class 'DefaultEventDispatcher' does not conform to the 'Sendable' protocol
 24 |     static let sharedInstance = DefaultEventDispatcher()
 25 |
    :
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
303 |                 self.queueLock.async {
304 |                     if self.eventQueue.count > 0 {
    |                        `- warning: capture of 'self' with non-sendable type 'DefaultEventDispatcher' in a '@Sendable' closure
305 |                         self.flushEvents()
306 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultLogger.swift:21:24: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 | open class DefaultLogger: OPTLogger {
21 |     private static var _logLevel: OptimizelyLogLevel?
   |                        |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static var logLevel: OptimizelyLogLevel {
23 |         get {
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:83:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 81 |     public required init() {
 82 |         lock.async {
 83 |             self.profiles = UserDefaults.standard.dictionary(forKey: self.kStorageName) as? UserProfileData ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 84 |
 85 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:100:38: warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 98 |
 99 |         lock.async {
100 |             self.profiles?[userId] = userProfile
    |                                      `- warning: capture of 'userProfile' with non-sendable type 'DefaultUserProfileService.UPProfile' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
101 |             let defaults = UserDefaults.standard
102 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:13: warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
 72 | // }
 73 |
 74 | open class DefaultUserProfileService: OPTUserProfileService {
    |            `- note: class 'DefaultUserProfileService' does not conform to the 'Sendable' protocol
 75 |     public typealias UserProfileData = [String: UPProfile]
 76 |
    :
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |             `- warning: capture of 'self' with non-sendable type 'DefaultUserProfileService' in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultUserProfileService.swift:109:29: warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
107 |     open func reset(userProfiles: UserProfileData? = nil) {
108 |         lock.async {
109 |             self.profiles = userProfiles ?? UserProfileData()
    |                             `- warning: capture of 'userProfiles' with non-sendable type 'DefaultUserProfileService.UserProfileData?' (aka 'Optional<Dictionary<String, Dictionary<String, Any>>>') in a '@Sendable' closure
110 |             let defaults = UserDefaults.standard
111 |             defaults.set(self.profiles, forKey: self.kStorageName)
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:244:28: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
242 |         let now = Date()
243 |         DispatchQueue.main.async {
244 |             if let timer = self.timers.property?[sdkKey]?.timer, timer.isValid {
    |                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
245 |                 return
246 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultDatafileHandler.swift:252:73: warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
250 |                                             startTime: now,
251 |                                             updateInterval: updateInterval,
252 |                                             datafileChangeNotification: datafileChangeNotification)
    |                                                                         |- warning: sending 'datafileChangeNotification' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                         `- note: task-isolated 'datafileChangeNotification' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
253 |
254 |                 timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/Customization/DefaultEventDispatcher.swift:300:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
298 |         DispatchQueue.main.async {
299 |             // should check here again
300 |             guard self.timer.property == nil else { return }
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
301 |
302 |             self.timer.property = Timer.scheduledTimer(withTimeInterval: self.timerInterval, repeats: true) { _ in
[84/102] Compiling Optimizely MurmurHash3.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[85/102] Compiling Optimizely NetworkReachability.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[86/102] Compiling Optimizely Notifications.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[87/102] Compiling Optimizely RetryStrategy.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[88/102] Compiling Optimizely SDKVersion.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[89/102] Compiling Optimizely ThreadSafeLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[90/102] Compiling Optimizely Utils.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[91/102] Compiling Optimizely WatchBackgroundNotifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[92/102] Compiling Optimizely resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utils/NetworkReachability.swift:68:17: warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 18 | import Network
 19 |
 20 | class NetworkReachability {
    |       `- note: class 'NetworkReachability' does not conform to the 'Sendable' protocol
 21 |
 22 |     var monitor: AnyObject?
    :
 66 |
 67 |                 // this task runs in sync queue. set private variable (instead of isConnected to avoid deadlock)
 68 |                 self?.connected = (path.status == .satisfied)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkReachability?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 69 |             }
 70 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:30:16: warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
    |                |- warning: static property 'sdkVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'sdkVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'sdkVersion' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |     static var swiftSdkClientName = "swift-sdk"
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Utils.swift:31:16: warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 |     // from auto-generated variable OPTIMIZELYSDKVERSION
 30 |     static var sdkVersion: String = OPTIMIZELYSDKVERSION
 31 |     static var swiftSdkClientName = "swift-sdk"
    |                |- warning: static property 'swiftSdkClientName' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'swiftSdkClientName' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'swiftSdkClientName' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     static var os: String {
[93/102] Compiling Optimizely OptimizelyConfig.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[94/102] Compiling Optimizely OptimizelyError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[95/102] Compiling Optimizely OptimizelyJSON+ObjC.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[96/102] Compiling Optimizely OptimizelyJSON.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[97/102] Compiling Optimizely OptimizelyLogLevel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[98/102] Compiling Optimizely OptimizelyResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[99/102] Compiling Optimizely VuidManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[100/102] Compiling Optimizely BackgroundingCallbacks.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[101/102] Compiling Optimizely DataStoreQueueStack.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
[102/102] Compiling Optimizely OPTBucketer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/OptimizelyError.swift:54:10: warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 52 |     case conditionCannotBeEvaluated(_ hint: String)
 53 |     case evaluateAttributeInvalidCondition(_ condition: String)
 54 |     case evaluateAttributeInvalidType(_ condition: String, _ value: Any, _ key: String)
    |          `- warning: associated value 'evaluateAttributeInvalidType' of 'Sendable'-conforming enum 'OptimizelyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 55 |     case evaluateAttributeValueOutOfRange(_ condition: String, _ key: String)
 56 |     case evaluateAttributeInvalidFormat(_ hint: String)
/Users/admin/builder/spi-builder-workspace/Sources/Optimizely/VuidManager.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
17 | import Foundation
18 |
19 | public class VuidManager {
   |              `- note: class 'VuidManager' does not conform to the 'Sendable' protocol
20 |     private var _vuid: String = ""
21 |     private(set) var enable: Bool = false
22 |     let logger = OPTLoggerFactory.getLogger()
23 |     // a single vuid should be shared for all SDK instances
24 |     public static let shared = VuidManager()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'VuidManager' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 |     public func configure(enable: Bool) {
Build complete! (7.95s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Sources/CLAUDE.md': File not found.
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Sources/Supporting Files/Info.plist
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Optimizely",
  "name" : "Optimizely",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "tvos",
      "version" : "10.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    },
    {
      "name" : "watchos",
      "version" : "3.0"
    }
  ],
  "products" : [
    {
      "name" : "Optimizely",
      "targets" : [
        "Optimizely"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Optimizely",
      "module_type" : "SwiftTarget",
      "name" : "Optimizely",
      "path" : "Sources",
      "product_memberships" : [
        "Optimizely"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Supporting Files/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "CMAB/CmabClient.swift",
        "CMAB/CmabConfig.swift",
        "CMAB/CmabService.swift",
        "Customization/DefaultDatafileHandler.swift",
        "Customization/DefaultEventDispatcher.swift",
        "Customization/DefaultLogger.swift",
        "Customization/DefaultUserProfileService.swift",
        "Customization/Protocols/OPTDatafileHandler.swift",
        "Customization/Protocols/OPTEventDispatcher.swift",
        "Customization/Protocols/OPTLogger.swift",
        "Customization/Protocols/OPTUserProfileService.swift",
        "Data Model/Attribute.swift",
        "Data Model/Audience/AttributeValue.swift",
        "Data Model/Audience/Audience.swift",
        "Data Model/Audience/ConditionHolder.swift",
        "Data Model/Audience/ConditionLeaf.swift",
        "Data Model/Audience/SemanticVersion.swift",
        "Data Model/Audience/UserAttribute.swift",
        "Data Model/Cmab.swift",
        "Data Model/DispatchEvents/BatchEvent.swift",
        "Data Model/DispatchEvents/EventForDispatch.swift",
        "Data Model/Event.swift",
        "Data Model/Experiment.swift",
        "Data Model/ExperimentCore.swift",
        "Data Model/FeatureFlag.swift",
        "Data Model/FeatureVariable.swift",
        "Data Model/Group.swift",
        "Data Model/Holdout.swift",
        "Data Model/HoldoutConfig.swift",
        "Data Model/Integration.swift",
        "Data Model/Project.swift",
        "Data Model/ProjectConfig.swift",
        "Data Model/Rollout.swift",
        "Data Model/TrafficAllocation.swift",
        "Data Model/Variable.swift",
        "Data Model/Variation.swift",
        "Extensions/Array+Extension.swift",
        "Extensions/ArrayEventForDispatch+Extension.swift",
        "Extensions/DataStoreQueueStackImpl+Extension.swift",
        "Extensions/OptimizelyClient+Extension.swift",
        "Implementation/Datastore/DataStoreFile.swift",
        "Implementation/Datastore/DataStoreMemory.swift",
        "Implementation/Datastore/DataStoreQueueStackImpl.swift",
        "Implementation/Datastore/DataStoreUserDefaults.swift",
        "Implementation/DecisionInfo.swift",
        "Implementation/DecisionReasons.swift",
        "Implementation/DecisionResponse.swift",
        "Implementation/DefaultBucketer.swift",
        "Implementation/DefaultDecisionService.swift",
        "Implementation/DefaultNotificationCenter.swift",
        "Implementation/Events/BatchEventBuilder.swift",
        "Implementation/UserProfileTracker.swift",
        "ODP/LruCache.swift",
        "ODP/OdpConfig.swift",
        "ODP/OdpEvent.swift",
        "ODP/OdpEventApiManager.swift",
        "ODP/OdpEventManager.swift",
        "ODP/OdpManager.swift",
        "ODP/OdpSegmentApiManager.swift",
        "ODP/OdpSegmentManager.swift",
        "ODP/OptimizelySdkSettings.swift",
        "ODP/OptimizelySegmentOption.swift",
        "Optimizely+Decide/OptimizelyClient+Decide.swift",
        "Optimizely+Decide/OptimizelyDecideOption.swift",
        "Optimizely+Decide/OptimizelyDecision.swift",
        "Optimizely+Decide/OptimizelyUserContext+ObjC.swift",
        "Optimizely+Decide/OptimizelyUserContext.swift",
        "Optimizely/OptimizelyClient+ObjC.swift",
        "Optimizely/OptimizelyClient.swift",
        "Optimizely/OptimizelyConfig+ObjC.swift",
        "Optimizely/OptimizelyConfig.swift",
        "Optimizely/OptimizelyError.swift",
        "Optimizely/OptimizelyJSON+ObjC.swift",
        "Optimizely/OptimizelyJSON.swift",
        "Optimizely/OptimizelyLogLevel.swift",
        "Optimizely/OptimizelyResult.swift",
        "Optimizely/VuidManager.swift",
        "Protocols/BackgroundingCallbacks.swift",
        "Protocols/DataStoreQueueStack.swift",
        "Protocols/OPTBucketer.swift",
        "Protocols/OPTDataStore.swift",
        "Protocols/OPTDecisionService.swift",
        "Protocols/OPTNotificationCenter.swift",
        "Utils/AtomicArray.swift",
        "Utils/AtomicDictionary.swift",
        "Utils/AtomicProperty.swift",
        "Utils/Constants.swift",
        "Utils/HandlerRegistryService.swift",
        "Utils/LogMessage.swift",
        "Utils/MurmurHash3.swift",
        "Utils/NetworkReachability.swift",
        "Utils/Notifications.swift",
        "Utils/RetryStrategy.swift",
        "Utils/SDKVersion.swift",
        "Utils/ThreadSafeLogger.swift",
        "Utils/Utils.swift",
        "watchOS/WatchBackgroundNotifier.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Sources/CLAUDE.md': File not found.
Done.