Build Information
Successful build of CoreBluetoothMock, reference 1.0.1 (d1e032
), with Swift 6.1 for macOS (SPM) on 9 May 2025 11:57:08 UTC.
Swift 6 data race errors: 11
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Reference: 1.0.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock
* tag 1.0.1 -> FETCH_HEAD
HEAD is now at d1e0321 Merge pull request #134 from NordicSemiconductor/version/1.0.1
Cloned https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Revision (git rev-parse @):
d1e0321027728da6edf5b974cf113524bad2034a
SUCCESS checkout https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git at 1.0.1
warning: 'spi-builder-workspace': /Users/admin/builder/spi-builder-workspace/Package.swift:12:11: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | platforms: [
11 | .macOS(.v10_13),
12 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
13 | .watchOS(.v4),
14 | .tvOS(.v11)
/Users/admin/builder/spi-builder-workspace/Package.swift:14:12: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
12 | .iOS(.v11),
13 | .watchOS(.v4),
14 | .tvOS(.v11)
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
15 | ],
16 | products: [
Fetching https://github.com/apple/swift-docc-symbolkit
Fetching https://github.com/apple/swift-docc-plugin
[1/2049] Fetching swift-docc-plugin
[227/5426] Fetching swift-docc-plugin, swift-docc-symbolkit
Fetched https://github.com/apple/swift-docc-symbolkit from cache (1.27s)
Fetched https://github.com/apple/swift-docc-plugin from cache (1.27s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.3 (2.33s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.77s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.45s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "ios-corebluetooth-mock",
"name": "CoreBluetoothMock",
"url": "https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/IOS-CoreBluetooth-Mock",
"dependencies": [
]
}
]
}
Fetching https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
[1/6547] Fetching ios-corebluetooth-mock
Fetched https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git from cache (1.21s)
warning: 'ios-corebluetooth-mock': /Package.swift:12:11: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | platforms: [
11 | .macOS(.v10_13),
12 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
13 | .watchOS(.v4),
14 | .tvOS(.v11)
/Package.swift:14:12: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
12 | .iOS(.v11),
13 | .watchOS(.v4),
14 | .tvOS(.v11)
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
15 | ],
16 | products: [
Creating working copy for https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Working copy of https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git resolved at 1.0.1 (d1e0321)
warning: 'ios-corebluetooth-mock': /Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/IOS-CoreBluetooth-Mock/Package.swift:12:11: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | platforms: [
11 | .macOS(.v10_13),
12 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
13 | .watchOS(.v4),
14 | .tvOS(.v11)
/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/IOS-CoreBluetooth-Mock/Package.swift:14:12: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
12 | .iOS(.v11),
13 | .watchOS(.v4),
14 | .tvOS(.v11)
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
15 | ],
16 | products: [
warning: '.resolve-product-dependencies': dependency 'ios-corebluetooth-mock' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.3",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "CoreBluetoothMock",
"name" : "CoreBluetoothMock",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "4.0"
},
{
"name" : "tvos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "CoreBluetoothMock",
"targets" : [
"CoreBluetoothMock"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "CoreBluetoothMock",
"module_type" : "SwiftTarget",
"name" : "CoreBluetoothMock",
"path" : "CoreBluetoothMock",
"product_memberships" : [
"CoreBluetoothMock"
],
"sources" : [
"CBMAttributes.swift",
"CBMCentralManager.swift",
"CBMCentralManagerDelegate.swift",
"CBMCentralManagerDelegateProxy.swift",
"CBMCentralManagerFactory.swift",
"CBMCentralManagerMock.swift",
"CBMCentralManagerNative.swift",
"CBMDictionary.swift",
"CBMManagerTypes.swift",
"CBMPeer.swift",
"CBMPeripheral.swift",
"CBMPeripheralDelegate.swift",
"CBMPeripheralDelegateProxy.swift",
"CBMPeripheralPreview.swift",
"CBMPeripheralSpec.swift",
"CBMPeripheralSpecDelegate.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/20] Compiling CoreBluetoothMock CBMPeripheralSpec.swift
[6/21] Compiling CoreBluetoothMock CBMAttributes.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:454:17: warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
452 | // MARK: - Mocking uninitialized objects
453 |
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
| |- warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedPeripheral' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
| `- note: class 'CBMPeripheralUninitialized' does not conform to the 'Sendable' protocol
459 | let debugDescription: String = "<uninitialized>"
460 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:455:17: warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
453 |
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
| |- warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedService' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
:
527 | }
528 |
529 | fileprivate class CBMServiceUninitialized: CBMService {
| `- note: class 'CBMServiceUninitialized' does not conform to the 'Sendable' protocol
530 | override var debugDescription: String { return "<uninitialized>" }
531 | override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:456:17: warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
| |- warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedCharacteristic' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
:
545 | }
546 |
547 | fileprivate class CBMCharacteristicUninitialized: CBMCharacteristic {
| `- note: class 'CBMCharacteristicUninitialized' does not conform to the 'Sendable' protocol
548 | override var debugDescription: String { return "<uninitialized>" }
549 | override var uuid: CBMUUID { uninitialized() }
[7/21] Compiling CoreBluetoothMock CBMCentralManager.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:454:17: warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
452 | // MARK: - Mocking uninitialized objects
453 |
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
| |- warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedPeripheral' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
| `- note: class 'CBMPeripheralUninitialized' does not conform to the 'Sendable' protocol
459 | let debugDescription: String = "<uninitialized>"
460 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:455:17: warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
453 |
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
| |- warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedService' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
:
527 | }
528 |
529 | fileprivate class CBMServiceUninitialized: CBMService {
| `- note: class 'CBMServiceUninitialized' does not conform to the 'Sendable' protocol
530 | override var debugDescription: String { return "<uninitialized>" }
531 | override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:456:17: warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
| |- warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedCharacteristic' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
:
545 | }
546 |
547 | fileprivate class CBMCharacteristicUninitialized: CBMCharacteristic {
| `- note: class 'CBMCharacteristicUninitialized' does not conform to the 'Sendable' protocol
548 | override var debugDescription: String { return "<uninitialized>" }
549 | override var uuid: CBMUUID { uninitialized() }
[8/21] Compiling CoreBluetoothMock CBMCentralManagerFactory.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:41:24: warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |
40 | /// A list of all mock managers instantiated by user.
41 | private static var managers: [WeakRef<CBMCentralManagerMock>] = []
| |- warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'managers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'managers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | /// A list of peripherals known to the system.
43 | private static var peripherals: [CBMPeripheralSpec] = [] {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:43:24: warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | private static var managers: [WeakRef<CBMCentralManagerMock>] = []
42 | /// A list of peripherals known to the system.
43 | private static var peripherals: [CBMPeripheralSpec] = [] {
| |- warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peripherals' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peripherals' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | didSet {
45 | stopAdvertising()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:52:24: warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
50 | ///
51 | /// Registered items can be accessed using any ``CBMCentralManagerMock``.
52 | private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
| |- warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'previewPeripherals' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'previewPeripherals' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 | /// A map of all current advertisements of all simulated peripherals.
54 | private static var advertisementTimers = CBMDictionary<CBMAdvertisementConfig, Timer>()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:54:24: warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
53 | /// A map of all current advertisements of all simulated peripherals.
54 | private static var advertisementTimers = CBMDictionary<CBMAdvertisementConfig, Timer>()
| |- warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'advertisementTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'advertisementTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | /// A mutex queue for managing managers.
56 | private static let mutex: DispatchQueue = DispatchQueue(label: "Mutex")
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:60:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 | ///
59 | /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
60 | internal private(set) static var bluetoothAuthorization: Int? {
| |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'bluetoothAuthorization' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | didSet {
62 | notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:72:38: warning: static property 'rssiDeviation' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 | ///
71 | /// Defaults to 15 dBm.
72 | internal private(set) static var rssiDeviation: CBMProximity.Deviation = .default
| |- warning: static property 'rssiDeviation' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'rssiDeviation' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'rssiDeviation' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 |
74 | /// The global state of the Bluetooth adapter on the device.
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:75:41: warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |
74 | /// The global state of the Bluetooth adapter on the device.
75 | fileprivate private(set) static var managerState: CBMManagerState = .poweredOff {
| |- warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'managerState' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'managerState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | didSet {
77 | notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:419:23: warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
417 | /// - SeeAlso: ``CBMCentralManagerRestoredStateScanServicesKey``
418 | /// - SeeAlso: ``CBMCentralManagerRestoredStateScanOptionsKey``
419 | public static var simulateStateRestoration: ((_ identifierKey: String) -> [String : Any]?)?
| |- warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'simulateStateRestoration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'simulateStateRestoration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 | #if !os(macOS)
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:97:17: warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a '@Sendable' closure
35 | /// This implementation will interact only with mock peripherals created using
36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
37 | open class CBMCentralManagerMock: CBMCentralManager {
| `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
38 |
39 |
:
95 | // ...and notify delegate.
96 | manager.queue.async {
97 | manager.delegate?.centralManagerDidUpdateState(manager)
| `- warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a '@Sendable' closure
98 | }
99 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:355:27: warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a '@Sendable' closure
35 | /// This implementation will interact only with mock peripherals created using
36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
37 | open class CBMCentralManagerMock: CBMCentralManager {
| `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
38 |
39 |
:
353 | }
354 | queue.async { [weak self] in
355 | if let self = self {
| `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a '@Sendable' closure
356 | CBMCentralManagerMock.mutex.sync {
357 | CBMCentralManagerMock.managers.append(WeakRef(self))
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1012:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1010 | if isAlreadyConnected {
1011 | queue.async { [weak self] in
1012 | if let self = self, self.state == .connecting {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1013 | self.state = .connected
1014 | self._canSendWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1017:21: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
1015 | self.mock.wasConnected = true
1016 | self.mock.virtualConnections += 1
1017 | completion(.success(()))
| |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1018 | }
1019 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1025:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1023 | let result = delegate.peripheralDidReceiveConnectionRequest(mock)
1024 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1025 | if let self = self, self.state == .connecting {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1026 | if case .success = result {
1027 | self.state = .connected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1034:17: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
1032 | self.state = .disconnected
1033 | }
1034 | completion(result)
| |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1035 | }
1036 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1046:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
1044 | state = .disconnected
1045 | queue.async {
1046 | completion()
| |- warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1047 | }
1048 | return
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1061:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1059 | // `tearDownSimulation()` could have been called before this is called.
1060 | // See https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock/issues/25
1061 | if let self = self, self.state == .disconnecting,
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1062 | CBMCentralManagerMock.managerState == .poweredOn {
1063 | self.state = .disconnected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1073:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
1071 | didDisconnect: nil)
1072 | }
1073 | completion()
| |- warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1074 | }
1075 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1093:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1091 | }
1092 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1093 | if let self = self, CBMCentralManagerMock.managerState == .poweredOn {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1094 | if isReconnecting {
1095 | self.state = .connecting
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1101:17: warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a '@Sendable' closure
1099 | }
1100 | self._canSendWriteWithoutResponse = false
1101 | completion(error)
| |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1102 | }
1103 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1114:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1112 | }
1113 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1114 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1115 | self.delegate?.peripheralDidUpdateName(self)
1116 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1137:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1135 | let invalidatedServices = oldServices.filter { !services!.contains($0) }
1136 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1137 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1138 | self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
1139 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1138:68: warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a '@Sendable' closure
1136 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1137 | if let self = self, self.state == .connected {
1138 | self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
| `- warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a '@Sendable' closure
1139 | }
1140 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1160:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1158 | let value = originalCharacteristic.value
1159 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1160 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1161 | characteristic.value = value
1162 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1161:17: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1159 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1160 | if let self = self, self.state == .connected {
1161 | characteristic.value = value
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1162 | self.delegate?.peripheral(self,
1163 | didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1207:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1205 | let delay = interval * Double(newServicesCount)
1206 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1207 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1208 | self.delegate?.peripheral(self, didDiscoverServices: nil)
1209 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1213:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1211 | case .failure(let error):
1212 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1213 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1214 | self.delegate?.peripheral(self, didDiscoverServices: error)
1215 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1255:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1253 | let delay = interval * Double(newServicesCount)
1254 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1255 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1256 | self.delegate?.peripheral(self,
1257 | didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1257:79: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1255 | if let self = self, self.state == .connected {
1256 | self.delegate?.peripheral(self,
1257 | didDiscoverIncludedServicesFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1258 | error: nil)
1259 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1263:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1261 | case .failure(let error):
1262 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1263 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1264 | self.delegate?.peripheral(self,
1265 | didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1265:79: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1263 | if let self = self, self.state == .connected {
1264 | self.delegate?.peripheral(self,
1265 | didDiscoverIncludedServicesFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1266 | error: error)
1267 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1312:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1310 | let delay = interval * Double(newCharacteristicsCount)
1311 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1312 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1313 | self.delegate?.peripheral(self,
1314 | didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1314:78: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1312 | if let self = self, self.state == .connected {
1313 | self.delegate?.peripheral(self,
1314 | didDiscoverCharacteristicsFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1315 | error: nil)
1316 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1320:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1318 | case .failure(let error):
1319 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1320 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1321 | self.delegate?.peripheral(self,
1322 | didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1322:78: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1320 | if let self = self, self.state == .connected {
1321 | self.delegate?.peripheral(self,
1322 | didDiscoverCharacteristicsFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1323 | error: error)
1324 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1361:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1359 | let delay = interval * Double(newDescriptorsCount)
1360 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1361 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1362 | self.delegate?.peripheral(self,
1363 | didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1363:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1361 | if let self = self, self.state == .connected {
1362 | self.delegate?.peripheral(self,
1363 | didDiscoverDescriptorsFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1364 | error: nil)
1365 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1369:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1367 | case .failure(let error):
1368 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1369 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1370 | self.delegate?.peripheral(self,
1371 | didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1371:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1369 | if let self = self, self.state == .connected {
1370 | self.delegate?.peripheral(self,
1371 | didDiscoverDescriptorsFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1372 | error: error)
1373 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1396:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1394 | case .success(let data):
1395 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1396 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1397 | characteristic.value = data
1398 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1397:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1395 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1396 | if let self = self, self.state == .connected {
1397 | characteristic.value = data
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1398 | self.delegate?.peripheral(self,
1399 | didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1405:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1403 | case .failure(let error):
1404 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1405 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1406 | self.delegate?.peripheral(self,
1407 | didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1407:66: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1405 | if let self = self, self.state == .connected {
1406 | self.delegate?.peripheral(self,
1407 | didUpdateValueFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1408 | error: error)
1409 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1430:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1428 | case .success(let data):
1429 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1430 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1431 | descriptor.value = data
1432 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1431:21: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1429 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1430 | if let self = self, self.state == .connected {
1431 | descriptor.value = data
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1432 | self.delegate?.peripheral(self,
1433 | didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1439:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1437 | case .failure(let error):
1438 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1439 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1440 | self.delegate?.peripheral(self,
1441 | didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1441:66: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1439 | if let self = self, self.state == .connected {
1440 | self.delegate?.peripheral(self,
1441 | didUpdateValueFor: descriptor,
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1442 | error: error)
1443 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1474:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1472 | let delay = interval * Double(packetsCount)
1473 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1474 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1475 | self.delegate?.peripheral(self,
1476 | didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1476:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1474 | if let self = self, self.state == .connected {
1475 | self.delegate?.peripheral(self,
1476 | didWriteValueFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1477 | error: nil)
1478 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1482:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1480 | case .failure(let error):
1481 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1482 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1483 | self.delegate?.peripheral(self,
1484 | didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1484:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1482 | if let self = self, self.state == .connected {
1483 | self.delegate?.peripheral(self,
1484 | didWriteValueFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1485 | error: error)
1486 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1504:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1502 |
1503 | queue.async { [weak self] in
1504 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1505 | // Increase buffer.
1506 | self.mutex.sync {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1536:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1534 | case .success:
1535 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1536 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1537 | self.delegate?.peripheral(self,
1538 | didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1538:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1536 | if let self = self, self.state == .connected {
1537 | self.delegate?.peripheral(self,
1538 | didWriteValueFor: descriptor,
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1539 | error: nil)
1540 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1544:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1542 | case .failure(let error):
1543 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1544 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1545 | self.delegate?.peripheral(self,
1546 | didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1546:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1544 | if let self = self, self.state == .connected {
1545 | self.delegate?.peripheral(self,
1546 | didWriteValueFor: descriptor,
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1547 | error: error)
1548 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1587:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1585 | case .success:
1586 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1587 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1588 | characteristic.isNotifying = enabled
1589 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1588:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1586 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1587 | if let self = self, self.state == .connected {
1588 | characteristic.isNotifying = enabled
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1589 | self.delegate?.peripheral(self,
1590 | didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1592:21: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1590 | didUpdateNotificationStateFor: characteristic,
1591 | error: nil)
1592 | mockCharacteristic.isNotifying = enabled
| `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1593 | self.mock.connectionDelegate?.peripheral(self.mock,
1594 | didUpdateNotificationStateFor: mockCharacteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
| `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 | open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1600:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1598 | case .failure(let error):
1599 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1600 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1601 | self.delegate?.peripheral(self,
1602 | didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1602:78: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1600 | if let self = self, self.state == .connected {
1601 | self.delegate?.peripheral(self,
1602 | didUpdateNotificationStateFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1603 | error: error)
1604 | self.mock.connectionDelegate?.peripheral(self.mock,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1605:68: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1603 | error: error)
1604 | self.mock.connectionDelegate?.peripheral(self.mock,
1605 | didUpdateNotificationStateFor: mockCharacteristic,
| `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1606 | error: error)
1607 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
| `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 | open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1618:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1616 | guard manager.ensurePoweredOn() else { return }
1617 | queue.async { [weak self] in
1618 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1619 | let rssi = self.mock.proximity.RSSI
1620 | let delta = CBMCentralManagerMock.rssiDeviation.value
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:142:16: warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
140 | // If the first advertising is to be delayed, create a
141 | // temporary timer that will call the initial data.
142 | if config.delay > 0 {
| |- warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'config' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
143 | advertisementTimers[config] = Timer.scheduledTimer(
144 | timeInterval: config.delay,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:147:32: warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
145 | target: self,
146 | selector: #selector(self.schedule(timer:)),
147 | userInfo: (mock, config),
| |- warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'mock' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
148 | repeats: false)
149 | } else {
[9/21] Compiling CoreBluetoothMock CBMCentralManagerMock.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:41:24: warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |
40 | /// A list of all mock managers instantiated by user.
41 | private static var managers: [WeakRef<CBMCentralManagerMock>] = []
| |- warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'managers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'managers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | /// A list of peripherals known to the system.
43 | private static var peripherals: [CBMPeripheralSpec] = [] {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:43:24: warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | private static var managers: [WeakRef<CBMCentralManagerMock>] = []
42 | /// A list of peripherals known to the system.
43 | private static var peripherals: [CBMPeripheralSpec] = [] {
| |- warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peripherals' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peripherals' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | didSet {
45 | stopAdvertising()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:52:24: warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
50 | ///
51 | /// Registered items can be accessed using any ``CBMCentralManagerMock``.
52 | private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
| |- warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'previewPeripherals' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'previewPeripherals' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 | /// A map of all current advertisements of all simulated peripherals.
54 | private static var advertisementTimers = CBMDictionary<CBMAdvertisementConfig, Timer>()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:54:24: warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
53 | /// A map of all current advertisements of all simulated peripherals.
54 | private static var advertisementTimers = CBMDictionary<CBMAdvertisementConfig, Timer>()
| |- warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'advertisementTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'advertisementTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | /// A mutex queue for managing managers.
56 | private static let mutex: DispatchQueue = DispatchQueue(label: "Mutex")
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:60:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 | ///
59 | /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
60 | internal private(set) static var bluetoothAuthorization: Int? {
| |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'bluetoothAuthorization' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | didSet {
62 | notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:72:38: warning: static property 'rssiDeviation' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 | ///
71 | /// Defaults to 15 dBm.
72 | internal private(set) static var rssiDeviation: CBMProximity.Deviation = .default
| |- warning: static property 'rssiDeviation' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'rssiDeviation' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'rssiDeviation' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 |
74 | /// The global state of the Bluetooth adapter on the device.
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:75:41: warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |
74 | /// The global state of the Bluetooth adapter on the device.
75 | fileprivate private(set) static var managerState: CBMManagerState = .poweredOff {
| |- warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'managerState' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'managerState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | didSet {
77 | notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:419:23: warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
417 | /// - SeeAlso: ``CBMCentralManagerRestoredStateScanServicesKey``
418 | /// - SeeAlso: ``CBMCentralManagerRestoredStateScanOptionsKey``
419 | public static var simulateStateRestoration: ((_ identifierKey: String) -> [String : Any]?)?
| |- warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'simulateStateRestoration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'simulateStateRestoration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 | #if !os(macOS)
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:97:17: warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a '@Sendable' closure
35 | /// This implementation will interact only with mock peripherals created using
36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
37 | open class CBMCentralManagerMock: CBMCentralManager {
| `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
38 |
39 |
:
95 | // ...and notify delegate.
96 | manager.queue.async {
97 | manager.delegate?.centralManagerDidUpdateState(manager)
| `- warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a '@Sendable' closure
98 | }
99 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:355:27: warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a '@Sendable' closure
35 | /// This implementation will interact only with mock peripherals created using
36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
37 | open class CBMCentralManagerMock: CBMCentralManager {
| `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
38 |
39 |
:
353 | }
354 | queue.async { [weak self] in
355 | if let self = self {
| `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a '@Sendable' closure
356 | CBMCentralManagerMock.mutex.sync {
357 | CBMCentralManagerMock.managers.append(WeakRef(self))
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1012:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1010 | if isAlreadyConnected {
1011 | queue.async { [weak self] in
1012 | if let self = self, self.state == .connecting {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1013 | self.state = .connected
1014 | self._canSendWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1017:21: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
1015 | self.mock.wasConnected = true
1016 | self.mock.virtualConnections += 1
1017 | completion(.success(()))
| |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1018 | }
1019 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1025:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1023 | let result = delegate.peripheralDidReceiveConnectionRequest(mock)
1024 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1025 | if let self = self, self.state == .connecting {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1026 | if case .success = result {
1027 | self.state = .connected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1034:17: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
1032 | self.state = .disconnected
1033 | }
1034 | completion(result)
| |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1035 | }
1036 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1046:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
1044 | state = .disconnected
1045 | queue.async {
1046 | completion()
| |- warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1047 | }
1048 | return
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1061:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1059 | // `tearDownSimulation()` could have been called before this is called.
1060 | // See https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock/issues/25
1061 | if let self = self, self.state == .disconnecting,
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1062 | CBMCentralManagerMock.managerState == .poweredOn {
1063 | self.state = .disconnected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1073:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
1071 | didDisconnect: nil)
1072 | }
1073 | completion()
| |- warning: capture of 'completion' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1074 | }
1075 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1093:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1091 | }
1092 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1093 | if let self = self, CBMCentralManagerMock.managerState == .poweredOn {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1094 | if isReconnecting {
1095 | self.state = .connecting
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1101:17: warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a '@Sendable' closure
1099 | }
1100 | self._canSendWriteWithoutResponse = false
1101 | completion(error)
| |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1102 | }
1103 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1114:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1112 | }
1113 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1114 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1115 | self.delegate?.peripheralDidUpdateName(self)
1116 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1137:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1135 | let invalidatedServices = oldServices.filter { !services!.contains($0) }
1136 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1137 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1138 | self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
1139 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1138:68: warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a '@Sendable' closure
1136 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1137 | if let self = self, self.state == .connected {
1138 | self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
| `- warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a '@Sendable' closure
1139 | }
1140 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1160:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1158 | let value = originalCharacteristic.value
1159 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1160 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1161 | characteristic.value = value
1162 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1161:17: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1159 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1160 | if let self = self, self.state == .connected {
1161 | characteristic.value = value
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1162 | self.delegate?.peripheral(self,
1163 | didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1207:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1205 | let delay = interval * Double(newServicesCount)
1206 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1207 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1208 | self.delegate?.peripheral(self, didDiscoverServices: nil)
1209 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1213:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1211 | case .failure(let error):
1212 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1213 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1214 | self.delegate?.peripheral(self, didDiscoverServices: error)
1215 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1255:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1253 | let delay = interval * Double(newServicesCount)
1254 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1255 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1256 | self.delegate?.peripheral(self,
1257 | didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1257:79: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1255 | if let self = self, self.state == .connected {
1256 | self.delegate?.peripheral(self,
1257 | didDiscoverIncludedServicesFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1258 | error: nil)
1259 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1263:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1261 | case .failure(let error):
1262 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1263 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1264 | self.delegate?.peripheral(self,
1265 | didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1265:79: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1263 | if let self = self, self.state == .connected {
1264 | self.delegate?.peripheral(self,
1265 | didDiscoverIncludedServicesFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1266 | error: error)
1267 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1312:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1310 | let delay = interval * Double(newCharacteristicsCount)
1311 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1312 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1313 | self.delegate?.peripheral(self,
1314 | didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1314:78: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1312 | if let self = self, self.state == .connected {
1313 | self.delegate?.peripheral(self,
1314 | didDiscoverCharacteristicsFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1315 | error: nil)
1316 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1320:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1318 | case .failure(let error):
1319 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1320 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1321 | self.delegate?.peripheral(self,
1322 | didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1322:78: warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1320 | if let self = self, self.state == .connected {
1321 | self.delegate?.peripheral(self,
1322 | didDiscoverCharacteristicsFor: service,
| `- warning: capture of 'service' with non-sendable type 'CBMService' in a '@Sendable' closure
1323 | error: error)
1324 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
52 | /// may contain multiple characteristics or included services (references to other services).
53 | open class CBMService: CBMAttribute {
| `- note: class 'CBMService' does not conform to the 'Sendable' protocol
54 | internal let identifier: UUID
55 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1361:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1359 | let delay = interval * Double(newDescriptorsCount)
1360 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1361 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1362 | self.delegate?.peripheral(self,
1363 | didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1363:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1361 | if let self = self, self.state == .connected {
1362 | self.delegate?.peripheral(self,
1363 | didDiscoverDescriptorsFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1364 | error: nil)
1365 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1369:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1367 | case .failure(let error):
1368 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1369 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1370 | self.delegate?.peripheral(self,
1371 | didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1371:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1369 | if let self = self, self.state == .connected {
1370 | self.delegate?.peripheral(self,
1371 | didDiscoverDescriptorsFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1372 | error: error)
1373 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1396:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1394 | case .success(let data):
1395 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1396 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1397 | characteristic.value = data
1398 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1397:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1395 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1396 | if let self = self, self.state == .connected {
1397 | characteristic.value = data
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1398 | self.delegate?.peripheral(self,
1399 | didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1405:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1403 | case .failure(let error):
1404 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1405 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1406 | self.delegate?.peripheral(self,
1407 | didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1407:66: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1405 | if let self = self, self.state == .connected {
1406 | self.delegate?.peripheral(self,
1407 | didUpdateValueFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1408 | error: error)
1409 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1430:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1428 | case .success(let data):
1429 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1430 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1431 | descriptor.value = data
1432 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1431:21: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1429 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1430 | if let self = self, self.state == .connected {
1431 | descriptor.value = data
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1432 | self.delegate?.peripheral(self,
1433 | didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1439:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1437 | case .failure(let error):
1438 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1439 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1440 | self.delegate?.peripheral(self,
1441 | didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1441:66: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1439 | if let self = self, self.state == .connected {
1440 | self.delegate?.peripheral(self,
1441 | didUpdateValueFor: descriptor,
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1442 | error: error)
1443 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1474:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1472 | let delay = interval * Double(packetsCount)
1473 | queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1474 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1475 | self.delegate?.peripheral(self,
1476 | didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1476:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1474 | if let self = self, self.state == .connected {
1475 | self.delegate?.peripheral(self,
1476 | didWriteValueFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1477 | error: nil)
1478 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1482:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1480 | case .failure(let error):
1481 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1482 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1483 | self.delegate?.peripheral(self,
1484 | didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1484:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1482 | if let self = self, self.state == .connected {
1483 | self.delegate?.peripheral(self,
1484 | didWriteValueFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1485 | error: error)
1486 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1504:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1502 |
1503 | queue.async { [weak self] in
1504 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1505 | // Increase buffer.
1506 | self.mutex.sync {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1536:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1534 | case .success:
1535 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1536 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1537 | self.delegate?.peripheral(self,
1538 | didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1538:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1536 | if let self = self, self.state == .connected {
1537 | self.delegate?.peripheral(self,
1538 | didWriteValueFor: descriptor,
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1539 | error: nil)
1540 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1544:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1542 | case .failure(let error):
1543 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1544 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1545 | self.delegate?.peripheral(self,
1546 | didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1546:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1544 | if let self = self, self.state == .connected {
1545 | self.delegate?.peripheral(self,
1546 | didWriteValueFor: descriptor,
| `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a '@Sendable' closure
1547 | error: error)
1548 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
| `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 | internal let identifier: UUID
325 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1587:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1585 | case .success:
1586 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1587 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1588 | characteristic.isNotifying = enabled
1589 | self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1588:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1586 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1587 | if let self = self, self.state == .connected {
1588 | characteristic.isNotifying = enabled
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1589 | self.delegate?.peripheral(self,
1590 | didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1592:21: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1590 | didUpdateNotificationStateFor: characteristic,
1591 | error: nil)
1592 | mockCharacteristic.isNotifying = enabled
| `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1593 | self.mock.connectionDelegate?.peripheral(self.mock,
1594 | didUpdateNotificationStateFor: mockCharacteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
| `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 | open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1600:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1598 | case .failure(let error):
1599 | queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1600 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1601 | self.delegate?.peripheral(self,
1602 | didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1602:78: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1600 | if let self = self, self.state == .connected {
1601 | self.delegate?.peripheral(self,
1602 | didUpdateNotificationStateFor: characteristic,
| `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a '@Sendable' closure
1603 | error: error)
1604 | self.mock.connectionDelegate?.peripheral(self.mock,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
| `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 | internal let identifier: UUID
195 | private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1605:68: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1603 | error: error)
1604 | self.mock.connectionDelegate?.peripheral(self.mock,
1605 | didUpdateNotificationStateFor: mockCharacteristic,
| `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a '@Sendable' closure
1606 | error: error)
1607 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
| `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 | open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1618:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
884 | ///
885 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
886 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
| `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
887 | /// The parent central manager.
888 | private let manager: CBMCentralManagerMock
:
1616 | guard manager.ensurePoweredOn() else { return }
1617 | queue.async { [weak self] in
1618 | if let self = self, self.state == .connected {
| `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a '@Sendable' closure
1619 | let rssi = self.mock.proximity.RSSI
1620 | let delta = CBMCentralManagerMock.rssiDeviation.value
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:142:16: warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
140 | // If the first advertising is to be delayed, create a
141 | // temporary timer that will call the initial data.
142 | if config.delay > 0 {
| |- warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'config' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
143 | advertisementTimers[config] = Timer.scheduledTimer(
144 | timeInterval: config.delay,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:147:32: warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
145 | target: self,
146 | selector: #selector(self.schedule(timer:)),
147 | userInfo: (mock, config),
| |- warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'mock' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
148 | repeats: false)
149 | } else {
[10/21] Emitting module CoreBluetoothMock
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:454:17: warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
452 | // MARK: - Mocking uninitialized objects
453 |
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
| |- warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedPeripheral' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
| `- note: class 'CBMPeripheralUninitialized' does not conform to the 'Sendable' protocol
459 | let debugDescription: String = "<uninitialized>"
460 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:455:17: warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
453 |
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
| |- warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedService' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
:
527 | }
528 |
529 | fileprivate class CBMServiceUninitialized: CBMService {
| `- note: class 'CBMServiceUninitialized' does not conform to the 'Sendable' protocol
530 | override var debugDescription: String { return "<uninitialized>" }
531 | override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:456:17: warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
454 | fileprivate let uninitializedPeripheral = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
| |- warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'uninitializedCharacteristic' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
:
545 | }
546 |
547 | fileprivate class CBMCharacteristicUninitialized: CBMCharacteristic {
| `- note: class 'CBMCharacteristicUninitialized' does not conform to the 'Sendable' protocol
548 | override var debugDescription: String { return "<uninitialized>" }
549 | override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:41:24: warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |
40 | /// A list of all mock managers instantiated by user.
41 | private static var managers: [WeakRef<CBMCentralManagerMock>] = []
| |- warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'managers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'managers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | /// A list of peripherals known to the system.
43 | private static var peripherals: [CBMPeripheralSpec] = [] {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:43:24: warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | private static var managers: [WeakRef<CBMCentralManagerMock>] = []
42 | /// A list of peripherals known to the system.
43 | private static var peripherals: [CBMPeripheralSpec] = [] {
| |- warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peripherals' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peripherals' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | didSet {
45 | stopAdvertising()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:52:24: warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
50 | ///
51 | /// Registered items can be accessed using any ``CBMCentralManagerMock``.
52 | private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
| |- warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'previewPeripherals' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'previewPeripherals' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 | /// A map of all current advertisements of all simulated peripherals.
54 | private static var advertisementTimers = CBMDictionary<CBMAdvertisementConfig, Timer>()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:54:24: warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
53 | /// A map of all current advertisements of all simulated peripherals.
54 | private static var advertisementTimers = CBMDictionary<CBMAdvertisementConfig, Timer>()
| |- warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'advertisementTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'advertisementTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | /// A mutex queue for managing managers.
56 | private static let mutex: DispatchQueue = DispatchQueue(label: "Mutex")
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:60:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 | ///
59 | /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
60 | internal private(set) static var bluetoothAuthorization: Int? {
| |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'bluetoothAuthorization' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | didSet {
62 | notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:72:38: warning: static property 'rssiDeviation' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 | ///
71 | /// Defaults to 15 dBm.
72 | internal private(set) static var rssiDeviation: CBMProximity.Deviation = .default
| |- warning: static property 'rssiDeviation' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'rssiDeviation' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'rssiDeviation' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 |
74 | /// The global state of the Bluetooth adapter on the device.
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:75:41: warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |
74 | /// The global state of the Bluetooth adapter on the device.
75 | fileprivate private(set) static var managerState: CBMManagerState = .poweredOff {
| |- warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'managerState' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'managerState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | didSet {
77 | notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:419:23: warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
417 | /// - SeeAlso: ``CBMCentralManagerRestoredStateScanServicesKey``
418 | /// - SeeAlso: ``CBMCentralManagerRestoredStateScanOptionsKey``
419 | public static var simulateStateRestoration: ((_ identifierKey: String) -> [String : Any]?)?
| |- warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'simulateStateRestoration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'simulateStateRestoration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 | #if !os(macOS)
[11/21] Compiling CoreBluetoothMock CBMCentralManagerDelegate.swift
[12/21] Compiling CoreBluetoothMock CBMCentralManagerDelegateProxy.swift
[13/21] Compiling CoreBluetoothMock CBMPeripheralDelegateProxy.swift
[14/21] Compiling CoreBluetoothMock CBMPeripheralPreview.swift
[15/21] Compiling CoreBluetoothMock CBMCentralManagerNative.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerNative.swift:351:46: warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a '@Sendable' closure
35 | ///
36 | /// This manager can only interact with physical Bluetooth LE devices.
37 | public class CBMCentralManagerNative: CBMCentralManager {
| `- note: class 'CBMCentralManagerNative' does not conform to the 'Sendable' protocol
38 | var observation: NSKeyValueObservation?
39 | @objc dynamic private var manager: CBCentralManager!
:
349 | private func addManagerObserver() {
350 | observation = observe(\.manager?.isScanning, options: [.old, .new]) { _, change in
351 | change.newValue?.flatMap { [weak self] new in
| `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a '@Sendable' closure
352 | self?.isScanning = new
353 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMDictionary.swift:56:17: warning: capture of 'self' with non-sendable type 'CBMDictionary<Key, Value>?' in a '@Sendable' closure
35 | /// - Note: This dictionary wrapper does not implement every possible operation and can be expanded as needed
36 | /// for future use.
37 | internal class CBMDictionary<Key: Hashable, Value> {
| `- note: generic class 'CBMDictionary' does not conform to the 'Sendable' protocol
38 | private var dictStorage = [Key: Value]()
39 |
:
54 | set {
55 | queue.async(flags: .barrier) { [weak self] in
56 | self?.dictStorage[key] = newValue
| `- warning: capture of 'self' with non-sendable type 'CBMDictionary<Key, Value>?' in a '@Sendable' closure
57 | }
58 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMDictionary.swift:56:35: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
35 | /// - Note: This dictionary wrapper does not implement every possible operation and can be expanded as needed
36 | /// for future use.
37 | internal class CBMDictionary<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
38 | private var dictStorage = [Key: Value]()
39 |
:
54 | set {
55 | queue.async(flags: .barrier) { [weak self] in
56 | self?.dictStorage[key] = newValue
| `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
57 | }
58 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMDictionary.swift:56:42: warning: capture of 'newValue' with non-sendable type 'Value?' in a '@Sendable' closure
35 | /// - Note: This dictionary wrapper does not implement every possible operation and can be expanded as needed
36 | /// for future use.
37 | internal class CBMDictionary<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
38 | private var dictStorage = [Key: Value]()
39 |
:
54 | set {
55 | queue.async(flags: .barrier) { [weak self] in
56 | self?.dictStorage[key] = newValue
| `- warning: capture of 'newValue' with non-sendable type 'Value?' in a '@Sendable' closure
57 | }
58 | }
[16/21] Compiling CoreBluetoothMock CBMDictionary.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerNative.swift:351:46: warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a '@Sendable' closure
35 | ///
36 | /// This manager can only interact with physical Bluetooth LE devices.
37 | public class CBMCentralManagerNative: CBMCentralManager {
| `- note: class 'CBMCentralManagerNative' does not conform to the 'Sendable' protocol
38 | var observation: NSKeyValueObservation?
39 | @objc dynamic private var manager: CBCentralManager!
:
349 | private func addManagerObserver() {
350 | observation = observe(\.manager?.isScanning, options: [.old, .new]) { _, change in
351 | change.newValue?.flatMap { [weak self] new in
| `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a '@Sendable' closure
352 | self?.isScanning = new
353 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMDictionary.swift:56:17: warning: capture of 'self' with non-sendable type 'CBMDictionary<Key, Value>?' in a '@Sendable' closure
35 | /// - Note: This dictionary wrapper does not implement every possible operation and can be expanded as needed
36 | /// for future use.
37 | internal class CBMDictionary<Key: Hashable, Value> {
| `- note: generic class 'CBMDictionary' does not conform to the 'Sendable' protocol
38 | private var dictStorage = [Key: Value]()
39 |
:
54 | set {
55 | queue.async(flags: .barrier) { [weak self] in
56 | self?.dictStorage[key] = newValue
| `- warning: capture of 'self' with non-sendable type 'CBMDictionary<Key, Value>?' in a '@Sendable' closure
57 | }
58 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMDictionary.swift:56:35: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
35 | /// - Note: This dictionary wrapper does not implement every possible operation and can be expanded as needed
36 | /// for future use.
37 | internal class CBMDictionary<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
38 | private var dictStorage = [Key: Value]()
39 |
:
54 | set {
55 | queue.async(flags: .barrier) { [weak self] in
56 | self?.dictStorage[key] = newValue
| `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
57 | }
58 | }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMDictionary.swift:56:42: warning: capture of 'newValue' with non-sendable type 'Value?' in a '@Sendable' closure
35 | /// - Note: This dictionary wrapper does not implement every possible operation and can be expanded as needed
36 | /// for future use.
37 | internal class CBMDictionary<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
38 | private var dictStorage = [Key: Value]()
39 |
:
54 | set {
55 | queue.async(flags: .barrier) { [weak self] in
56 | self?.dictStorage[key] = newValue
| `- warning: capture of 'newValue' with non-sendable type 'Value?' in a '@Sendable' closure
57 | }
58 | }
[17/21] Compiling CoreBluetoothMock CBMPeripheral.swift
[18/21] Compiling CoreBluetoothMock CBMPeripheralDelegate.swift
[19/21] Compiling CoreBluetoothMock CBMManagerTypes.swift
[20/21] Compiling CoreBluetoothMock CBMPeer.swift
[21/21] Compiling CoreBluetoothMock CBMPeripheralSpecDelegate.swift
Build complete! (14.89s)
warning: 'spi-builder-workspace': /Users/admin/builder/spi-builder-workspace/Package.swift:12:11: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | platforms: [
11 | .macOS(.v10_13),
12 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
13 | .watchOS(.v4),
14 | .tvOS(.v11)
/Users/admin/builder/spi-builder-workspace/Package.swift:14:12: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
12 | .iOS(.v11),
13 | .watchOS(.v4),
14 | .tvOS(.v11)
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
15 | ],
16 | products: [
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.3",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "CoreBluetoothMock",
"name" : "CoreBluetoothMock",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "4.0"
},
{
"name" : "tvos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "CoreBluetoothMock",
"targets" : [
"CoreBluetoothMock"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "CoreBluetoothMock",
"module_type" : "SwiftTarget",
"name" : "CoreBluetoothMock",
"path" : "CoreBluetoothMock",
"product_memberships" : [
"CoreBluetoothMock"
],
"sources" : [
"CBMAttributes.swift",
"CBMCentralManager.swift",
"CBMCentralManagerDelegate.swift",
"CBMCentralManagerDelegateProxy.swift",
"CBMCentralManagerFactory.swift",
"CBMCentralManagerMock.swift",
"CBMCentralManagerNative.swift",
"CBMDictionary.swift",
"CBMManagerTypes.swift",
"CBMPeer.swift",
"CBMPeripheral.swift",
"CBMPeripheralDelegate.swift",
"CBMPeripheralDelegateProxy.swift",
"CBMPeripheralPreview.swift",
"CBMPeripheralSpec.swift",
"CBMPeripheralSpecDelegate.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
warning: 'spi-builder-workspace': /Users/admin/builder/spi-builder-workspace/Package.swift:12:11: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | platforms: [
11 | .macOS(.v10_13),
12 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
13 | .watchOS(.v4),
14 | .tvOS(.v11)
/Users/admin/builder/spi-builder-workspace/Package.swift:14:12: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
12 | .iOS(.v11),
13 | .watchOS(.v4),
14 | .tvOS(.v11)
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
15 | ],
16 | products: [
Done.