Build Information
Failed to build glacier, reference main (d2e78d), with Swift 6.3 for macOS (SPM) on 14 Apr 2026 17:28:09 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/swiftDevelopmentPackages/glacier.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/swiftDevelopmentPackages/glacier
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at d2e78d6 Drop github actions
Cloned https://github.com/swiftDevelopmentPackages/glacier.git
Revision (git rev-parse @):
d2e78d69acd38f933bce5851f7e000d500538f23
SUCCESS checkout https://github.com/swiftDevelopmentPackages/glacier.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"traits": [
"default"
],
"dependencies": [
{
"identity": "glacier",
"name": "glacier",
"url": "https://github.com/swiftDevelopmentPackages/glacier.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/glacier",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/swiftDevelopmentPackages/glacier.git
[1/64] Fetching glacier
Fetched https://github.com/swiftDevelopmentPackages/glacier.git from cache (0.67s)
Creating working copy for https://github.com/swiftDevelopmentPackages/glacier.git
Working copy of https://github.com/swiftDevelopmentPackages/glacier.git resolved at main (d2e78d6)
warning: '.resolve-product-dependencies': dependency 'glacier' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.3
Building package at path: $PWD
https://github.com/swiftDevelopmentPackages/glacier.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--6988338F2F200930.txt
[3/9] Compiling glacier Peripheral.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:9:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
8 | func discoverServices()
9 | func validatePairing() -> AnyPublisher<PeripheralProtocol, Error>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
10 | func resetPairingState()
11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:13:41: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
:
11 |
12 | func writeWithoutResponse(data: Data)
13 | func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
14 |
15 | func read() -> AnyPublisher<Result<Data, Error>, Never>
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:15:18: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
:
13 | func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
14 |
15 | func read() -> AnyPublisher<Result<Data, Error>, Never>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
16 | var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:16:24: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
:
14 |
15 | func read() -> AnyPublisher<Result<Data, Error>, Never>
16 | var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
17 | }
18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:30:42: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
28 | public let rssi: NSNumber
29 |
30 | private var peripheralValidationFlow = PassthroughSubject<Result<PeripheralProtocol, GlacierError>, Never>()
| `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
31 | public var pairingState: PeripheralPairingState = .unpaired(dialogueShown: false)
32 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:39:37: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
37 | private let writeQueue = DispatchQueue(label: "peripheralWriteQueue", qos: .background)
38 | private let writeSemaphore = DispatchSemaphore(value: 1)
39 | private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
40 |
41 | private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:41:34: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
39 | private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
40 |
41 | private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
42 |
43 | private var subscriptions = Set<AnyCancellable>()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:43:35: error: 'AnyCancellable' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
41 | private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
42 |
43 | private var subscriptions = Set<AnyCancellable>()
| `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
44 |
45 | init(cbPeripheral: CBPeripheralAbstraction,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:68:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:200:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:211:31: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:252:48: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:70:8: error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
| |- error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
71 | self?.discoverServices()
72 | })
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:73:8: error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
71 | self?.discoverServices()
72 | })
73 | .flatMap { result in
| |- error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
74 | Deferred {
75 | Future { promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:74:9: error: 'Deferred' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
:
72 | })
73 | .flatMap { result in
74 | Deferred {
| |- error: 'Deferred' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
75 | Future { promise in
76 | if case let .success(peripheral) = result {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:75:11: error: 'Future' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
:
73 | .flatMap { result in
74 | Deferred {
75 | Future { promise in
| |- error: 'Future' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
76 | if case let .success(peripheral) = result {
77 | promise(.success(peripheral))
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:85:8: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
:
83 | }
84 | // This is the non-configurable pairing system pop-up presence timeout
85 | .timeout(30, scheduler: DispatchQueue.global()) {
| |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
86 | GlacierError.peripheralInitialDiscoveryTimeout
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:88:8: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
:
86 | GlacierError.peripheralInitialDiscoveryTimeout
87 | }
88 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
89 | }
90 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:201:69: error: 'Empty' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
| |- error: 'Empty' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
203 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:201:77: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
203 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:205:8: error: 'compactMap' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
203 |
204 | return readValueSubject
205 | .compactMap { $0 }
| |- error: 'compactMap' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
206 | .first()
207 | .receive(on: DispatchQueue.main)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:206:8: error: 'first()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
:
204 | return readValueSubject
205 | .compactMap { $0 }
206 | .first()
| |- error: 'first()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
207 | .receive(on: DispatchQueue.main)
208 | .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:207:8: error: 'receive(on:options:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
:
205 | .compactMap { $0 }
206 | .first()
207 | .receive(on: DispatchQueue.main)
| |- error: 'receive(on:options:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
208 | .eraseToAnyPublisher()
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:208:8: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
:
206 | .first()
207 | .receive(on: DispatchQueue.main)
208 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
209 | }
210 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:214:30: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
214 | func repeatableRead() -> AnyPublisher<Result<Data, Error>, Error> {
| `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
215 | readValueSubject
216 | .setFailureType(to: Error.self)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:216:10: error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
214 | func repeatableRead() -> AnyPublisher<Result<Data, Error>, Error> {
215 | readValueSubject
216 | .setFailureType(to: Error.self)
| |- error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
217 | .compactMap { $0 }
218 | .timeout(peripheralCommunication.readCharacteristicPollingInterval,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:217:10: error: 'compactMap' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
215 | readValueSubject
216 | .setFailureType(to: Error.self)
217 | .compactMap { $0 }
| |- error: 'compactMap' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
218 | .timeout(peripheralCommunication.readCharacteristicPollingInterval,
219 | scheduler: DispatchQueue.main) {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:218:10: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
216 | .setFailureType(to: Error.self)
217 | .compactMap { $0 }
218 | .timeout(peripheralCommunication.readCharacteristicPollingInterval,
| |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
219 | scheduler: DispatchQueue.main) {
220 | PeripheralError.readNotifyTimeout
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:222:19: error: 'catch' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
220 | PeripheralError.readNotifyTimeout
221 | }
222 | .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
| |- error: 'catch' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
223 | guard let readCharacteristic = self?.readCharacteristic else {
224 | return Empty().eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:222:44: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
220 | PeripheralError.readNotifyTimeout
221 | }
222 | .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
| |- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
223 | guard let readCharacteristic = self?.readCharacteristic else {
224 | return Empty().eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:224:29: error: 'Empty' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
222 | .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
223 | guard let readCharacteristic = self?.readCharacteristic else {
224 | return Empty().eraseToAnyPublisher()
| |- error: 'Empty' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
225 | }
226 | // force read manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:224:37: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
222 | .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
223 | guard let readCharacteristic = self?.readCharacteristic else {
224 | return Empty().eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
225 | }
226 | // force read manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:231:19: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
229 | return repeatableRead()
230 | })
231 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
232 | }
233 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:235:8: error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
233 |
234 | return repeatableRead()
235 | .handleEvents(receiveSubscription: { [weak self] _ in
| |- error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
236 | guard let readCharacteristic = self?.readCharacteristic else { return }
237 | self?.cbPeripheral.readValueForCharacteristic(readCharacteristic)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:239:8: error: 'assertNoFailure(_:file:line:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
237 | self?.cbPeripheral.readValueForCharacteristic(readCharacteristic)
238 | })
239 | .assertNoFailure()
| |- error: 'assertNoFailure(_:file:line:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
240 | .receive(on: DispatchQueue.main)
241 | .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:240:8: error: 'receive(on:options:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
238 | })
239 | .assertNoFailure()
240 | .receive(on: DispatchQueue.main)
| |- error: 'receive(on:options:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
241 | .eraseToAnyPublisher()
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:241:8: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
:
239 | .assertNoFailure()
240 | .receive(on: DispatchQueue.main)
241 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
242 | }
243 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:253:5: error: 'Deferred' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
| |- error: 'Deferred' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
254 | Future { [weak self] promise in
255 | self?.writeQueue.async { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:254:7: error: 'Future' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
| |- error: 'Future' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
255 | self?.writeQueue.async { [weak self] in
256 | guard let self = self,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:266:14: error: 'compactMap' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
:
264 |
265 | self.writeResponseStream
266 | .compactMap { $0 }
| |- error: 'compactMap' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
267 | .sink(receiveCompletion: { _ in },
268 | receiveValue: {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:267:14: error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
:
265 | self.writeResponseStream
266 | .compactMap { $0 }
267 | .sink(receiveCompletion: { _ in },
| |- error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
268 | receiveValue: {
269 | if case .success = $0 {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:274:14: error: 'store(in:)' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
:
272 | promise(.failure(error))
273 | }})
274 | .store(in: &self.subscriptions)
| |- error: 'store(in:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
275 | }
276 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:278:6: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
:
276 | }
277 | }
278 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
279 | }
280 |
[4/9] Compiling glacier PeripheralCommunicationProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/PeripheralCommunicationProtocol.swift:10:56: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralInitialCommunicationProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var servicesToDiscover: [CBUUID]? { get }
7 | var characteristicsToDiscover: [CBUUID]? { get }
8 | var readCharacteristicIdentifier: CBUUID { get }
9 | var writeCharacteristicIdentifier: CBUUID { get }
10 | var readCharacteristicPollingInterval: DispatchQueue.SchedulerTimeType.Stride { get }
| | `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
11 | var pairingRequestPayload: Data { get }
12 | var pairingConfirmationPayload: Data { get }
[5/9] Compiling glacier GlacierError.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/9] Emitting module glacier
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:9:22: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
8 | var authorizationState: AuthorizationState { get }
9 | var serverState: AnyPublisher<ServerState, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
10 | var isScanning: AnyPublisher<Bool, Never> { get }
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:10:21: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
8 | var authorizationState: AuthorizationState { get }
9 | var serverState: AnyPublisher<ServerState, Never> { get }
10 | var isScanning: AnyPublisher<Bool, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:11:33: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
9 | var serverState: AnyPublisher<ServerState, Never> { get }
10 | var isScanning: AnyPublisher<Bool, Never> { get }
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:12:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
10 | var isScanning: AnyPublisher<Bool, Never> { get }
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
14 | // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:13:35: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
14 | // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
15 | var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:15:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
14 | // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
15 | var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
16 |
17 | // Following permission methods are convenience only, designed to show a specific system pop-up. Consuming the interactor streams without calling these will work as expected
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:29:81: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
27 | /// - Parameter options: Connection options
28 | /// - Returns: A publisher of a `<Peripheral, Error>` which completes immediately after any given output.
29 | func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:46:37: error: 'AnyCancellable' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
44 | }()
45 |
46 | private var subscriptions = Set<AnyCancellable>()
| `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
47 | private var autoReconnectCancellables = [UUID: AnyCancellable]()
48 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:47:52: error: 'AnyCancellable' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
45 |
46 | private var subscriptions = Set<AnyCancellable>()
47 | private var autoReconnectCancellables = [UUID: AnyCancellable]()
| `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
48 |
49 | // MARK: Initialization
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:89:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
87 | public var authorizationState: AuthorizationState { CBManager.authorizationState }
88 |
89 | public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
91 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:90:42: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
88 |
89 | public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
91 |
92 | public var isScanning: AnyPublisher<Bool, Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:92:28: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
91 |
92 | public var isScanning: AnyPublisher<Bool, Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
93 | isScanningSubject.eraseToAnyPublisher()
94 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:95:41: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
93 | isScanningSubject.eraseToAnyPublisher()
94 | }
95 | private lazy var isScanningSubject: CurrentValueSubject<Bool, Never> = { .init(cbCentralManager?.isScanning ?? false) }()
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
96 |
97 | public func triggerPermissionAlert() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:115:40: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
113 | }
114 |
115 | public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
116 | internalPeripheralStorage
117 | .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:125:43: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
123 | .eraseToAnyPublisher()
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
126 | internalPeripheralStorage
127 | .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:135:32: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
133 | .eraseToAnyPublisher()
134 | }
135 | public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
136 | internalPeripheralStorage
137 | .share()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:139:44: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
137 | .share()
138 | .eraseToAnyPublisher() }
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:141:42: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
142 | private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
143 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:142:51: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
142 | private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
| `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
143 |
144 | public func scanForPeripherals() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:172:53: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
170 | }
171 |
172 | private var peripheralPairingValidationStream = PassthroughSubject<(peripheralIdentifier: UUID, error: Error?), Never>()
| `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
173 | /**
174 | As explained in the protocol declaration above, this method is emitting based on a succesful/failed connection followed by pairing validation. Any successful or failed emission will complete the returned AnyPublisher due to the underlying Future. This requires resubscription on-demand.
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:177:88: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:8:43: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
2 | import Foundation
3 |
4 | public protocol CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing protocol
5 | var centralManagerInitializationOptions: [String : Any]? { get }
6 | var peripheralScanningOptions: [String : Any]? { get }
7 | var peripheralScanningRequiredServices: [CBUUID]? { get }
8 | var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
| | `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
9 | var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
10 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:9:46: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
2 | import Foundation
3 |
4 | public protocol CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing protocol
5 | var centralManagerInitializationOptions: [String : Any]? { get }
6 | var peripheralScanningOptions: [String : Any]? { get }
7 | var peripheralScanningRequiredServices: [CBUUID]? { get }
8 | var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
9 | var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
| | `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
10 | }
11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:16:50: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
15 | public let peripheralScanningRequiredServices: [CBUUID]?
16 | public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:17:53: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
15 | public let peripheralScanningRequiredServices: [CBUUID]?
16 | public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
18 |
19 | public init(centralManagerInitializationOptions: [String : Any]? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:22:51: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
:
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 | public init(centralManagerInitializationOptions: [String : Any]? = nil,
| `- note: add '@available' attribute to enclosing initializer
20 | peripheralScanningOptions: [String : Any]? = nil,
21 | peripheralScanningRequiredServices: [CBUUID]? = nil,
22 | autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
23 | initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
24 | self.centralManagerInitializationOptions = centralManagerInitializationOptions
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:23:54: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
:
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 | public init(centralManagerInitializationOptions: [String : Any]? = nil,
| `- note: add '@available' attribute to enclosing initializer
20 | peripheralScanningOptions: [String : Any]? = nil,
21 | peripheralScanningRequiredServices: [CBUUID]? = nil,
22 | autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
23 | initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
24 | self.centralManagerInitializationOptions = centralManagerInitializationOptions
25 | self.peripheralScanningOptions = peripheralScanningOptions
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:9:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
8 | func discoverServices()
9 | func validatePairing() -> AnyPublisher<PeripheralProtocol, Error>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
10 | func resetPairingState()
11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:13:41: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
:
11 |
12 | func writeWithoutResponse(data: Data)
13 | func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
14 |
15 | func read() -> AnyPublisher<Result<Data, Error>, Never>
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:15:18: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
:
13 | func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
14 |
15 | func read() -> AnyPublisher<Result<Data, Error>, Never>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
16 | var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:16:24: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var cbPeripheral: CBPeripheralAbstraction { get }
7 | var pairingState: PeripheralPairingState { get set }
:
14 |
15 | func read() -> AnyPublisher<Result<Data, Error>, Never>
16 | var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
17 | }
18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:30:42: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
28 | public let rssi: NSNumber
29 |
30 | private var peripheralValidationFlow = PassthroughSubject<Result<PeripheralProtocol, GlacierError>, Never>()
| `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
31 | public var pairingState: PeripheralPairingState = .unpaired(dialogueShown: false)
32 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:39:37: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
37 | private let writeQueue = DispatchQueue(label: "peripheralWriteQueue", qos: .background)
38 | private let writeSemaphore = DispatchSemaphore(value: 1)
39 | private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
40 |
41 | private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:41:34: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
39 | private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
40 |
41 | private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
42 |
43 | private var subscriptions = Set<AnyCancellable>()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:43:35: error: 'AnyCancellable' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
41 | private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
42 |
43 | private var subscriptions = Set<AnyCancellable>()
| `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
44 |
45 | init(cbPeripheral: CBPeripheralAbstraction,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:68:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
66 | }
67 |
68 | public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
69 | return peripheralValidationFlow
70 | .handleEvents(receiveSubscription: { [weak self] _ in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:200:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
198 | //MARK: READ/WRITE OPERATIONS
199 |
200 | public func read() -> AnyPublisher<Result<Data, Error>, Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
201 | guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 | cbPeripheral.readValueForCharacteristic(readCharacteristic)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:211:31: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
209 | }
210 |
211 | public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
212 | // some peripherals fail to notify even if they have `.notify` channel
213 | // A timeout force-reads the characteristic and refreshes the value manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:252:48: error: 'AnyPublisher' is only available in macOS 10.15 or newer
22 | }
23 |
24 | public class Peripheral: NSObject, PeripheralProtocol {
| `- note: add '@available' attribute to enclosing class
25 |
26 | public let cbPeripheral: CBPeripheralAbstraction
:
250 | }
251 |
252 | public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
253 | Deferred {
254 | Future { [weak self] promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/PeripheralCommunicationProtocol.swift:10:56: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
3 | import Combine
4 |
5 | public protocol PeripheralInitialCommunicationProtocol {
| `- note: add '@available' attribute to enclosing protocol
6 | var servicesToDiscover: [CBUUID]? { get }
7 | var characteristicsToDiscover: [CBUUID]? { get }
8 | var readCharacteristicIdentifier: CBUUID { get }
9 | var writeCharacteristicIdentifier: CBUUID { get }
10 | var readCharacteristicPollingInterval: DispatchQueue.SchedulerTimeType.Stride { get }
| | `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
11 | var pairingRequestPayload: Data { get }
12 | var pairingConfirmationPayload: Data { get }
[7/9] Compiling glacier CentralBluetoothInteractorOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:8:43: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
2 | import Foundation
3 |
4 | public protocol CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing protocol
5 | var centralManagerInitializationOptions: [String : Any]? { get }
6 | var peripheralScanningOptions: [String : Any]? { get }
7 | var peripheralScanningRequiredServices: [CBUUID]? { get }
8 | var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
| | `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
9 | var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
10 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:9:46: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
2 | import Foundation
3 |
4 | public protocol CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing protocol
5 | var centralManagerInitializationOptions: [String : Any]? { get }
6 | var peripheralScanningOptions: [String : Any]? { get }
7 | var peripheralScanningRequiredServices: [CBUUID]? { get }
8 | var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
9 | var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
| | `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
10 | }
11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:16:50: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
15 | public let peripheralScanningRequiredServices: [CBUUID]?
16 | public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:17:53: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
15 | public let peripheralScanningRequiredServices: [CBUUID]?
16 | public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
18 |
19 | public init(centralManagerInitializationOptions: [String : Any]? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:22:51: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
:
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 | public init(centralManagerInitializationOptions: [String : Any]? = nil,
| `- note: add '@available' attribute to enclosing initializer
20 | peripheralScanningOptions: [String : Any]? = nil,
21 | peripheralScanningRequiredServices: [CBUUID]? = nil,
22 | autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
23 | initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
24 | self.centralManagerInitializationOptions = centralManagerInitializationOptions
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:23:54: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
| `- note: add '@available' attribute to enclosing struct
13 | public let centralManagerInitializationOptions: [String : Any]?
14 | public let peripheralScanningOptions: [String : Any]?
:
17 | public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 | public init(centralManagerInitializationOptions: [String : Any]? = nil,
| `- note: add '@available' attribute to enclosing initializer
20 | peripheralScanningOptions: [String : Any]? = nil,
21 | peripheralScanningRequiredServices: [CBUUID]? = nil,
22 | autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
23 | initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
| `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
24 | self.centralManagerInitializationOptions = centralManagerInitializationOptions
25 | self.peripheralScanningOptions = peripheralScanningOptions
[8/9] Compiling glacier Abstractions.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Abstractions.swift:108:22: error: 'authorization' is only available in macOS 10.15 or newer
104 | }
105 |
106 | extension CBManager {
| `- note: add '@available' attribute to enclosing extension
107 | public static var authorizationState: AuthorizationState {
| `- note: add '@available' attribute to enclosing static property
108 | switch CBManager.authorization {
| |- error: 'authorization' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
109 | case .notDetermined:
110 | return .notDetermined
[9/9] Compiling glacier CentralBluetoothInteractor.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:9:22: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
8 | var authorizationState: AuthorizationState { get }
9 | var serverState: AnyPublisher<ServerState, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
10 | var isScanning: AnyPublisher<Bool, Never> { get }
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:10:21: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
8 | var authorizationState: AuthorizationState { get }
9 | var serverState: AnyPublisher<ServerState, Never> { get }
10 | var isScanning: AnyPublisher<Bool, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:11:33: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
9 | var serverState: AnyPublisher<ServerState, Never> { get }
10 | var isScanning: AnyPublisher<Bool, Never> { get }
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:12:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
10 | var isScanning: AnyPublisher<Bool, Never> { get }
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
14 | // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:13:35: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
11 | var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
12 | var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
14 | // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
15 | var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:15:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
13 | var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
14 | // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
15 | var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
16 |
17 | // Following permission methods are convenience only, designed to show a specific system pop-up. Consuming the interactor streams without calling these will work as expected
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:29:81: error: 'AnyPublisher' is only available in macOS 10.15 or newer
3 | import CoreBluetooth
4 |
5 | public protocol CentralBluetoothInteractable: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
6 | var interactorOptions: CentralBluetoothInteractorConfigurable { get }
7 |
:
27 | /// - Parameter options: Connection options
28 | /// - Returns: A publisher of a `<Peripheral, Error>` which completes immediately after any given output.
29 | func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError>
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:46:37: error: 'AnyCancellable' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
44 | }()
45 |
46 | private var subscriptions = Set<AnyCancellable>()
| `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
47 | private var autoReconnectCancellables = [UUID: AnyCancellable]()
48 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:47:52: error: 'AnyCancellable' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
45 |
46 | private var subscriptions = Set<AnyCancellable>()
47 | private var autoReconnectCancellables = [UUID: AnyCancellable]()
| `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
48 |
49 | // MARK: Initialization
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:89:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
87 | public var authorizationState: AuthorizationState { CBManager.authorizationState }
88 |
89 | public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
91 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:90:42: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
88 |
89 | public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
91 |
92 | public var isScanning: AnyPublisher<Bool, Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:92:28: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
91 |
92 | public var isScanning: AnyPublisher<Bool, Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
93 | isScanningSubject.eraseToAnyPublisher()
94 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:95:41: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
93 | isScanningSubject.eraseToAnyPublisher()
94 | }
95 | private lazy var isScanningSubject: CurrentValueSubject<Bool, Never> = { .init(cbCentralManager?.isScanning ?? false) }()
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
96 |
97 | public func triggerPermissionAlert() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:115:40: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
113 | }
114 |
115 | public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
116 | internalPeripheralStorage
117 | .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:125:43: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
123 | .eraseToAnyPublisher()
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
126 | internalPeripheralStorage
127 | .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:135:32: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
133 | .eraseToAnyPublisher()
134 | }
135 | public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
136 | internalPeripheralStorage
137 | .share()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:139:44: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
137 | .share()
138 | .eraseToAnyPublisher() }
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
| `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:141:42: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
142 | private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
143 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:142:51: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
142 | private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
| `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
143 |
144 | public func scanForPeripherals() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:172:53: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
170 | }
171 |
172 | private var peripheralPairingValidationStream = PassthroughSubject<(peripheralIdentifier: UUID, error: Error?), Never>()
| `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
173 | /**
174 | As explained in the protocol declaration above, this method is emitting based on a succesful/failed connection followed by pairing validation. Any successful or failed emission will complete the returned AnyPublisher due to the underlying Future. This requires resubscription on-demand.
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:177:88: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| | `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:89:83: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
87 | public var authorizationState: AuthorizationState { CBManager.authorizationState }
88 |
89 | public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
| | |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| | `- note: add 'if #available' version check
| `- note: add '@available' attribute to enclosing property
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
91 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:93:27: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
90 | private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
91 |
92 | public var isScanning: AnyPublisher<Bool, Never> {
| `- note: add '@available' attribute to enclosing property
93 | isScanningSubject.eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | }
95 | private lazy var isScanningSubject: CurrentValueSubject<Bool, Never> = { .init(cbCentralManager?.isScanning ?? false) }()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:117:14: error: 'map' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
113 | }
114 |
115 | public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
116 | internalPeripheralStorage
117 | .map { $0.values
| |- error: 'map' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
118 | .filter { $1 == .advertising }
119 | .map { $0.peripheral }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:121:14: error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
113 | }
114 |
115 | public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
116 | internalPeripheralStorage
117 | .map { $0.values
:
119 | .map { $0.peripheral }
120 | }
121 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
| |- error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
122 | .share()
123 | .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:122:14: error: 'share()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
113 | }
114 |
115 | public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
116 | internalPeripheralStorage
117 | .map { $0.values
:
120 | }
121 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
122 | .share()
| |- error: 'share()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
123 | .eraseToAnyPublisher()
124 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:123:14: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
113 | }
114 |
115 | public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
116 | internalPeripheralStorage
117 | .map { $0.values
:
121 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
122 | .share()
123 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:127:14: error: 'map' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
123 | .eraseToAnyPublisher()
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
126 | internalPeripheralStorage
127 | .map { $0.values
| |- error: 'map' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
128 | .filter { $1 == .readyToControl }
129 | .map { $0.peripheral }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:131:14: error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
123 | .eraseToAnyPublisher()
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
126 | internalPeripheralStorage
127 | .map { $0.values
:
129 | .map { $0.peripheral }
130 | }
131 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
| |- error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
132 | .share()
133 | .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:132:14: error: 'share()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
123 | .eraseToAnyPublisher()
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
126 | internalPeripheralStorage
127 | .map { $0.values
:
130 | }
131 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
132 | .share()
| |- error: 'share()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
133 | .eraseToAnyPublisher()
134 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:133:14: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
123 | .eraseToAnyPublisher()
124 | }
125 | public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
| `- note: add '@available' attribute to enclosing property
126 | internalPeripheralStorage
127 | .map { $0.values
:
131 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
132 | .share()
133 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
134 | }
135 | public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:137:14: error: 'share()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
133 | .eraseToAnyPublisher()
134 | }
135 | public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
| `- note: add '@available' attribute to enclosing property
136 | internalPeripheralStorage
137 | .share()
| |- error: 'share()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
138 | .eraseToAnyPublisher() }
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:138:10: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
133 | .eraseToAnyPublisher()
134 | }
135 | public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
| `- note: add '@available' attribute to enclosing property
136 | internalPeripheralStorage
137 | .share()
138 | .eraseToAnyPublisher() }
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:141:120: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
139 | private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
141 | public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
| | |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| | `- note: add 'if #available' version check
| `- note: add '@available' attribute to enclosing property
142 | private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
143 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:180:20: error: 'Just' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
180 | return Just(peripheral).setFailureType(to: GlacierError.self).eraseToAnyPublisher()
| |- error: 'Just' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
181 | }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:180:37: error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
180 | return Just(peripheral).setFailureType(to: GlacierError.self).eraseToAnyPublisher()
| |- error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
181 | }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:180:75: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
180 | return Just(peripheral).setFailureType(to: GlacierError.self).eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
181 | }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:186:14: error: 'filter' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
:
184 |
185 | return peripheralPairingValidationStream
186 | .filter { peripheral.cbPeripheral.identifier == $0.peripheralIdentifier }
| |- error: 'filter' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
187 | .flatMap { [weak self] validationResult in
188 | Future { promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:187:14: error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
:
185 | return peripheralPairingValidationStream
186 | .filter { peripheral.cbPeripheral.identifier == $0.peripheralIdentifier }
187 | .flatMap { [weak self] validationResult in
| |- error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
188 | Future { promise in
189 | guard let self = self else {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:188:17: error: 'Future' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
:
186 | .filter { peripheral.cbPeripheral.identifier == $0.peripheralIdentifier }
187 | .flatMap { [weak self] validationResult in
188 | Future { promise in
| |- error: 'Future' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
189 | guard let self = self else {
190 | promise(.failure(GlacierError.unknown(nil)))
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:208:14: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
:
206 | }
207 | }
208 | .timeout(interactorOptions.initialDiscoveryTimeout, scheduler: DispatchQueue.global()) { [internalPeripheralStorage] in
| |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
209 | internalPeripheralStorage.value.removeValue(forKey: peripheral.cbPeripheral.identifier)
210 | return GlacierError.peripheralInitialDiscoveryTimeout
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:212:14: error: 'first()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
:
210 | return GlacierError.peripheralInitialDiscoveryTimeout
211 | }
212 | .first()
| |- error: 'first()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
213 | .eraseToAnyPublisher()
214 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:213:14: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
175 |
176 | */
177 | public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- note: add '@available' attribute to enclosing instance method
178 | guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 | internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
:
211 | }
212 | .first()
213 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
214 | }
215 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:241:57: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
| `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
242 | internalPeripheralStorage
243 | .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:243:18: error: 'map' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
243 | .map { $0.values
| |- error: 'map' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
244 | .filter { ($1 == .advertising) || ($1 == .reconnecting) }
245 | .map { $0.peripheral }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:247:18: error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
245 | .map { $0.peripheral }
246 | }
247 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
| |- error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
248 | .eraseToAnyPublisher()
249 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:248:18: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
246 | }
247 | .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
248 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
249 | }
250 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:252:14: error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
250 |
251 | return advertisingAndReconnectingPeripherals()
252 | .subscribe(on: executionQueue)
| |- error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
253 | .tryMap { advertisingAndReconnectingPeripherals -> PeripheralProtocol in
254 | guard let matchingPeripheral = advertisingAndReconnectingPeripherals
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:253:14: error: 'tryMap' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
251 | return advertisingAndReconnectingPeripherals()
252 | .subscribe(on: executionQueue)
253 | .tryMap { advertisingAndReconnectingPeripherals -> PeripheralProtocol in
| |- error: 'tryMap' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
254 | guard let matchingPeripheral = advertisingAndReconnectingPeripherals
255 | .first(where: { $0.cbPeripheral.identifier == peripheral.identifier }) else {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:260:14: error: 'flatMap(maxPublishers:_:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
258 | return matchingPeripheral
259 | }
260 | .flatMap {
| |- error: 'flatMap(maxPublishers:_:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
261 | $0.validatePairing()
262 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:263:14: error: 'first()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
261 | $0.validatePairing()
262 | }
263 | .first()
| |- error: 'first()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
264 | .sink(receiveCompletion: { [weak self] in
265 | if case let .failure(error) = $0 {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:264:14: error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
262 | }
263 | .first()
264 | .sink(receiveCompletion: { [weak self] in
| |- error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
265 | if case let .failure(error) = $0 {
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
266 | self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 | }
268 | }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
| |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
269 | executionQueue?.async(flags: .barrier) {
270 | internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:274:16: error: 'store(in:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
238 | After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 | */
240 | func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
| `- note: add '@available' attribute to enclosing instance method
241 | func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 | internalPeripheralStorage
:
272 | peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: nil))
273 | }
274 | }).store(in: &subscriptions)
| |- error: 'store(in:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
275 | }
276 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:291:33: error: 'AnyPublisher' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
289 | disconnectingPeripheral.resetPairingState()
290 |
291 | func reconnect() -> AnyPublisher<PeripheralProtocol, GlacierError> {
| `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
292 | connect(disconnectingPeripheral, options: [:])
293 | .catch({ _ in reconnect() })
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:293:22: error: 'catch' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
291 | func reconnect() -> AnyPublisher<PeripheralProtocol, GlacierError> {
292 | connect(disconnectingPeripheral, options: [:])
293 | .catch({ _ in reconnect() })
| |- error: 'catch' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
294 | .eraseToAnyPublisher()
295 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:294:22: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
292 | connect(disconnectingPeripheral, options: [:])
293 | .catch({ _ in reconnect() })
294 | .eraseToAnyPublisher()
| |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
295 | }
296 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:299:18: error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
297 | autoReconnectCancellables[disconnectingPeripheral.cbPeripheral.identifier] =
298 | reconnect()
299 | .subscribe(on: executionQueue)
| |- error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
300 | .timeout(interactorOptions.autoReconnectTimeout, scheduler: DispatchQueue.global()) {
301 | return GlacierError.peripheralAutoReconnectTimeout
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:300:18: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
298 | reconnect()
299 | .subscribe(on: executionQueue)
300 | .timeout(interactorOptions.autoReconnectTimeout, scheduler: DispatchQueue.global()) {
| |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
301 | return GlacierError.peripheralAutoReconnectTimeout
302 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:303:18: error: 'first()' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
301 | return GlacierError.peripheralAutoReconnectTimeout
302 | }
303 | .first()
| |- error: 'first()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
304 | .handleEvents(receiveSubscription: { [weak self] _ in
305 | self?.autoReconnectionPipelineSubject.send(.init(
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:304:18: error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
302 | }
303 | .first()
304 | .handleEvents(receiveSubscription: { [weak self] _ in
| |- error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
305 | self?.autoReconnectionPipelineSubject.send(.init(
306 | identifier: disconnectingPeripheral.cbPeripheral.identifier,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:309:18: error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
307 | state: .reconnecting))
308 | })
309 | .sink(receiveCompletion: { [weak self] in
| |- error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
310 | if case .failure = $0 {
311 | // Failed to reconnect within given timeout range
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:338:64: error: 'encryptionTimedOut' is only available in macOS 10.15 or newer
32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
33 |
34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
| `- note: add '@available' attribute to enclosing class
35 | private let executionQueue: DispatchQueue
36 | private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
:
282 | }
283 |
284 | func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
285 | func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 | executionQueue.async(flags: .barrier) { [weak self] in
:
336 |
337 | if let error = error as? CBError,
338 | (CBError.connectionTimeout == error.code || CBError.encryptionTimedOut == error.code),
| |- error: 'encryptionTimedOut' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
339 | let disconnectingPeripheral = internalPeripheralStorage.value[peripheral.identifier]?.peripheral,
340 | disconnectingPeripheral.cbPeripheral.peripheralState == .disconnected ||
BUILD FAILURE 6.3 macosSpm