Build Information
Successful build of VanMoofKit, reference main (d258b2
), with Swift 6.0 for macOS (SPM) on 1 Dec 2024 13:33:32 UTC.
Swift 6 data race errors: 7
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[105/117] Compiling VanMoofKit VanMoof+Bike+SignalStrength.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[106/117] Compiling VanMoofKit VanMoof+Bike+SoundVolume.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[107/117] Compiling VanMoofKit VanMoof+Bike+Speed.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[108/117] Compiling VanMoofKit VanMoof+Bike+SpeedLimit.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[109/117] Compiling VanMoofKit VanMoof+Bike+TotalDistance.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[110/117] Compiling VanMoofKit VanMoof+Bike+UnitSystem.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[111/117] Compiling VanMoofKit VanMoof+Bike+BluetoothCrypto.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[112/117] Compiling VanMoofKit VanMoof+Bike+BluetoothData.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[113/117] Compiling VanMoofKit VanMoof+Bike+BluetoothManager+API.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[114/117] Compiling VanMoofKit VanMoof+Bike+BluetoothManager+CBCentralManagerDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | /// The default timeout interval in seconds. Default value `30`
17 | static var timeoutInterval: TimeInterval = 30
| |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'timeoutInterval' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
43 | try await self.withTimeout(seconds: timeoutInterval) {
44 | // For each bluetooth event
45 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 | // Check central state
47 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 | try await self.withTimeout(seconds: timeoutInterval) {
229 | // For each bluetooth event
230 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 | // Switch on event
232 | switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 | return try await self.withTimeout(seconds: timeoutInterval) {
288 | // For each bluetooth event
289 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | // Check central state
291 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 | return try await self.withTimeout(seconds: timeoutInterval) {
343 | // For each bluetooth event
344 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 | // Check central state
346 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 | let updatedCoreBluetoothCharacteristic,
352 | let error
353 | ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | // Check if an error is available
355 | // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
1 | import Combine
2 | import CoreBluetooth
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
3 | import Foundation
4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 | try await self.withTimeout(seconds: timeoutInterval) {
441 | // For each bluetooth event
442 | for try await event in self.values {
| `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 | // Check central state
444 | try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
8 |
9 | /// A VanMoof Bike BluetoothManager.
10 | final class BluetoothManager: NSObject {
| `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
11 |
12 | // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 | let updatedCoreBluetoothCharacterstic,
450 | let error
451 | ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
| `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 | // Check if an error is available
453 | if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class CBCharacteristic : CBAttribute {
| `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
3 | weak open var service: CBService? { get }
4 | open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
566 | ) async throws -> R {
567 | try await withThrowingTaskGroup(of: R.self) { group in
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 | // Initialize deadline
569 | let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
569 | let deadline = Date(timeIntervalSinceNow: seconds)
570 | // Add operation Task
571 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 | // Execute operation
573 | return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
574 | }
575 | // Add timeout Task
576 | group.addTask {
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 | // Initialize interval
578 | let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
590 | }
591 | // Await first result
592 | let result = try await group.next()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 | // Cancel all other tasks
594 | group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 | /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 | /// If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 | func withTimeout<R>(
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 | seconds: TimeInterval,
565 | operation: @escaping @Sendable () async throws -> R
:
592 | let result = try await group.next()
593 | // Cancel all other tasks
594 | group.cancelAll()
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 | // Verify result is available
596 | guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 | return
119 | }
120 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 | guard let signalStrength = try? await self.signalStrength else {
| `- note: closure captures non-Sendable 'self'
122 | return
123 | }
124 | promise(.success(signalStrength))
| `- note: closure captures non-Sendable 'promise'
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 | DispatchQueue.main.asyncAfter(
461 | deadline: .now() + 1
462 | ) { [weak self] in
| `- note: access can happen concurrently
463 | // Read value
464 | try? self?.connectedPeripheral
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 | .readValue(
466 | for: updatedCoreBluetoothCharacterstic
[115/119] Compiling VanMoofCLI VanMoofCLI.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofCLI/VanMoofCLI.swift:36:22: warning: sending 'cli' risks causing data races; this is an error in the Swift 6 language mode
34 | }
35 | // Execute CLI
36 | try await cli()
| |- warning: sending 'cli' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'cli' to nonisolated instance method 'callAsFunction()' risks causing data races between nonisolated and main actor-isolated uses
37 | }
38 |
[116/119] Emitting module VanMoofCLI
[116/119] Write Objects.LinkFileList
[117/119] Linking vanmoof
[118/119] Applying vanmoof
Build complete! (19.39s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "VanMoofKit",
"name" : "VanMoofKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "9.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "VanMoofKit",
"targets" : [
"VanMoofKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "vanmoof",
"targets" : [
"VanMoofCLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "VanMoofKitTests",
"module_type" : "SwiftTarget",
"name" : "VanMoofKitTests",
"path" : "Tests/VanMoofKitTests",
"sources" : [
"VanMoofTests.swift"
],
"target_dependencies" : [
"VanMoofKit"
],
"type" : "test"
},
{
"c99name" : "VanMoofKit",
"module_type" : "SwiftTarget",
"name" : "VanMoofKit",
"path" : "Sources/VanMoofKit",
"product_memberships" : [
"VanMoofKit",
"vanmoof"
],
"sources" : [
"Authentication/VanMoof+AuthenticationState.swift",
"Authentication/VanMoof+Credentials.swift",
"Authentication/VanMoof+Token+Key.swift",
"Authentication/VanMoof+Token+MissingError.swift",
"Authentication/VanMoof+Token.swift",
"Bike/API/VanMoof+Bike+AlarmMode.swift",
"Bike/API/VanMoof+Bike+AlarmState.swift",
"Bike/API/VanMoof+Bike+BatteryLevel.swift",
"Bike/API/VanMoof+Bike+BatteryState.swift",
"Bike/API/VanMoof+Bike+BellSound.swift",
"Bike/API/VanMoof+Bike+ClockDate.swift",
"Bike/API/VanMoof+Bike+CommunicationError.swift",
"Bike/API/VanMoof+Bike+Connect.swift",
"Bike/API/VanMoof+Bike+ConnectionState.swift",
"Bike/API/VanMoof+Bike+Disconnect.swift",
"Bike/API/VanMoof+Bike+ErrorCode.swift",
"Bike/API/VanMoof+Bike+Execute.swift",
"Bike/API/VanMoof+Bike+FirmwareVersions.swift",
"Bike/API/VanMoof+Bike+LightMode.swift",
"Bike/API/VanMoof+Bike+LockState.swift",
"Bike/API/VanMoof+Bike+ModuleState.swift",
"Bike/API/VanMoof+Bike+PlaySound.swift",
"Bike/API/VanMoof+Bike+PowerLevel.swift",
"Bike/API/VanMoof+Bike+SignalStrength.swift",
"Bike/API/VanMoof+Bike+SoundVolume.swift",
"Bike/API/VanMoof+Bike+Speed.swift",
"Bike/API/VanMoof+Bike+SpeedLimit.swift",
"Bike/API/VanMoof+Bike+TotalDistance.swift",
"Bike/API/VanMoof+Bike+UnitSystem.swift",
"Bike/Bluetooth/Crypto/VanMoof+Bike+BluetoothCrypto.swift",
"Bike/Bluetooth/Data/VanMoof+Bike+BluetoothData.swift",
"Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift",
"Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+CBCentralManagerDelegate.swift",
"Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+CBPeripheralDelegate.swift",
"Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+Event.swift",
"Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift",
"Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+AlarmModeCharacteristic.swift",
"Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+AlarmStateCharacteristic.swift",
"Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+LockStateCharacteristic.swift",
"Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+UnlockRequestCharacteristic.swift",
"Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence.swift",
"Bike/Bluetooth/Services/Firmware/VanMoof+Bike+BluetoothServices+Firmware+BlockCharacteristic.swift",
"Bike/Bluetooth/Services/Firmware/VanMoof+Bike+BluetoothServices+Firmware+MetadataCharacteristic.swift",
"Bike/Bluetooth/Services/Firmware/VanMoof+Bike+BluetoothServices+Firmware.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+BLEChipFirmwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+BatteryFirmwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+BikeFirmwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+ControllerFirmwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+EShifterFirmwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+GSMFirmwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+ModuleBatteryLevelCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+ModuleBatteryStateCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+MotorBatteryLevelCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+MotorBatteryStateCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+PCBAHardwareVersionCharacteristic.swift",
"Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info.swift",
"Bike/Bluetooth/Services/Light/VanMoof+Bike+BluetoothServices+Light+ModeCharacteristic.swift",
"Bike/Bluetooth/Services/Light/VanMoof+Bike+BluetoothServices+Light.swift",
"Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance+LogBlockCharacteristic.swift",
"Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance+LogModeCharacteristic.swift",
"Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance+LogSizeCharacteristic.swift",
"Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+DistanceCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+EShifterGearCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+EShifterModeCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+EShiftingPointsCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+PowerLevelCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+SpeedCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+SpeedLimitCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+UnitSystemCharacteristic.swift",
"Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement.swift",
"Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+BackupCodeCharacteristic.swift",
"Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+BikeMessageCharacteristic.swift",
"Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+ChallengeCharacteristic.swift",
"Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+KeyIndexCharacteristic.swift",
"Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security.swift",
"Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound+BellSoundCharacteristic.swift",
"Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound+PlaySoundCharacteristic.swift",
"Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound+SoundVolumeCharacteristic.swift",
"Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound.swift",
"Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ClockCharacteristic.swift",
"Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ErrorsCharacteristic.swift",
"Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ModuleModeCharacteristic.swift",
"Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ModuleStateCharacteristic.swift",
"Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+WheelSizeCharacteristic.swift",
"Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State.swift",
"Bike/Bluetooth/Services/VanMoof+Bike+BluetoothServices.swift",
"Bike/Bluetooth/Services/VanMoofBikeBluetoothCharacteristic.swift",
"Bike/Bluetooth/Services/VanMoofBikeBluetoothService.swift",
"Bike/Configuration/VanMoof+Bike+Configuration.swift",
"Bike/Details/VanMoof+Bike+Details+CustomerRole.swift",
"Bike/Details/VanMoof+Bike+Details+Key.swift",
"Bike/Details/VanMoof+Bike+Details+Links.swift",
"Bike/Details/VanMoof+Bike+Details+ModelColor.swift",
"Bike/Details/VanMoof+Bike+Details+ModelDetails.swift",
"Bike/Details/VanMoof+Bike+Details+Permission.swift",
"Bike/Details/VanMoof+Bike+Details.swift",
"Bike/Error/VanMoof+Bike+Error.swift",
"Bike/Log/VanMoof+Bike+Log.swift",
"Bike/VanMoof+Bike.swift",
"TokenStore/InMemoryVanMoofTokenStore.swift",
"TokenStore/KeychainVanMoofTokenStore.swift",
"TokenStore/LARightVanMoofTokenStore.swift",
"TokenStore/NSUbiquitousVanMoofTokenStore.swift",
"TokenStore/ObservableObjectVanMoofTokenMediator.swift",
"TokenStore/UserDefaultsVanMoofTokenStore.swift",
"TokenStore/VanMoofTokenStore.swift",
"User/VanMoof+User.swift",
"VanMoof.swift"
],
"type" : "library"
},
{
"c99name" : "VanMoofCLI",
"module_type" : "SwiftTarget",
"name" : "VanMoofCLI",
"path" : "Sources/VanMoofCLI",
"product_memberships" : [
"vanmoof"
],
"sources" : [
"VanMoofCLI.swift"
],
"target_dependencies" : [
"VanMoofKit"
],
"type" : "executable"
}
],
"tools_version" : "5.9"
}
Done.