Build Information
Failed to build AsyncBLE, reference 0.1.1 (fb4eee), with Swift 6.4 for macOS (SPM) on 28 Sep 2026 02:10:06 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/vilimets/AsyncBLE-Swift.git
Reference: 0.1.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/vilimets/AsyncBLE-Swift
* tag 0.1.1 -> FETCH_HEAD
HEAD is now at fb4eeec Clear the Swift 6 strict-concurrency warnings
Cloned https://github.com/vilimets/AsyncBLE-Swift.git
Revision (git rev-parse @):
fb4eeecfcbecc91d0155fddc7df50112ac81ac71
SUCCESS checkout https://github.com/vilimets/AsyncBLE-Swift.git at 0.1.1
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/vilimets/AsyncBLE-Swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Planning deferred tasks]
[19 / 28]
[20 / 29] AsyncBLE
[30 / 77]
[35 / 77]
[39 / 77]
[40 / 77]
[44 / 77]
[46 / 77]
[49 / 77]
[53 / 77]
[55 / 77]
[56 / 77]
[68 / 77] AsyncBLE
error: SwiftCompile normal arm64 failed with a nonzero exit code. Command line: cd /Users/admin/builder
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:36:51: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m5 |[0;0m import Foundation
[0;36m6 |[0;0m
[0;36m7 |[0;0m extension Central {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing extension[0;0m
[0;36m8 |[0;0m /// Waits for the adapter to say something definitive, and throws if that is bad news.
[0;36m9 |[0;0m ///
[0;36m:[0;0m
[0;36m34 |[0;0m /// - peripheralID: Which peripheral.
[0;36m35 |[0;0m /// - timeout: The deadline for the attempt, or `nil` to pend indefinitely.
[0;36m36 |[0;0m func establish(_ peripheralID: UUID, timeout: Duration?) async throws -> Connection {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m37 |[0;0m try await requirePoweredOn()
[0;36m38 |[0;0m let connection = try connection(for: peripheralID)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:71:64: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m5 |[0;0m import Foundation
[0;36m6 |[0;0m
[0;36m7 |[0;0m extension Central {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing extension[0;0m
[0;36m8 |[0;0m /// Waits for the adapter to say something definitive, and throws if that is bad news.
[0;36m9 |[0;0m ///
[0;36m:[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m /// Suspends until the link comes up, this caller gives up, or the connection ends.
[0;36m71 |[0;0m private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m72 |[0;0m let handle = ConnectAttemptHandle()
[0;36m73 |[0;0m try await withTaskCancellationHandler {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:49:18: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m28 |[0;0m
[0;36m29 |[0;0m /// One caller waiting for a connection to come up.
[0;36m30 |[0;0m final class ConnectAttemptHandle: @unchecked Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m31 |[0;0m private var once: ResumeOnce?
[0;36m32 |[0;0m private var core: ConnectionCore?
[0;36m:[0;0m
[0;36m44 |[0;0m /// gets its deadline from the state machine instead, so the two never both fire.
[0;36m45 |[0;0m /// - scheduler: Where the deadline is armed.
[0;36m46 |[0;0m func begin(
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m47 |[0;0m core: ConnectionCore,
[0;36m48 |[0;0m continuation: CheckedContinuation<Void, Error>,
[0;36m49 |[0;0m timeout: Duration?,
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m50 |[0;0m scheduler: Scheduler
[0;36m51 |[0;0m ) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:132:34: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// The engine behind one ``Connection``.
[0;36m18 |[0;0m final class ConnectionCore: ConnectionSink, @unchecked Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m19 |[0;0m let peripheralID: UUID
[0;36m20 |[0;0m let library: LibraryQueue
[0;36m:[0;0m
[0;36m130 |[0;0m
[0;36m131 |[0;0m /// Asks for a link. `timeout` of `nil` is a pending connect with no deadline.
[0;36m132 |[0;0m func requestConnect(timeout: Duration?) {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m133 |[0;0m library.assertIsolated()
[0;36m134 |[0;0m handle(.connectRequested(timeout: timeout))
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:318:21: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// The engine behind one ``Connection``.
[0;36m18 |[0;0m final class ConnectionCore: ConnectionSink, @unchecked Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m19 |[0;0m let peripheralID: UUID
[0;36m20 |[0;0m let library: LibraryQueue
[0;36m:[0;0m
[0;36m315 |[0;0m }
[0;36m316 |[0;0m
[0;36m317 |[0;0m private func schedule(
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m318 |[0;0m _ duration: Duration,
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m319 |[0;0m _ work: @escaping @Sendable (ConnectionCore) -> Void
[0;36m320 |[0;0m ) -> ScheduledWork {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:30:30: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m17 |[0;0m /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
[0;36m18 |[0;0m /// see a write land on the far side of a drop it was queued before.
[0;36m19 |[0;0m enum ConnectionEffect: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing enum[0;0m
[0;36m20 |[0;0m /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
[0;36m21 |[0;0m case armConnect
[0;36m:[0;0m
[0;36m28 |[0;0m ///
[0;36m29 |[0;0m /// - Parameter duration: How long the attempt may run.
[0;36m30 |[0;0m case startConnectTimeout(Duration)
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m31 |[0;0m
[0;36m32 |[0;0m /// Cancel the connect attempt's deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:41:30: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m17 |[0;0m /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
[0;36m18 |[0;0m /// see a write land on the far side of a drop it was queued before.
[0;36m19 |[0;0m enum ConnectionEffect: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing enum[0;0m
[0;36m20 |[0;0m /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
[0;36m21 |[0;0m case armConnect
[0;36m:[0;0m
[0;36m39 |[0;0m ///
[0;36m40 |[0;0m /// - Parameter duration: How long to keep waiting.
[0;36m41 |[0;0m case startGiveUpDeadline(Duration)
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m42 |[0;0m
[0;36m43 |[0;0m /// Cancel the give-up deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:53:26: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m17 |[0;0m /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
[0;36m18 |[0;0m /// see a write land on the far side of a drop it was queued before.
[0;36m19 |[0;0m enum ConnectionEffect: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing enum[0;0m
[0;36m20 |[0;0m /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
[0;36m21 |[0;0m case armConnect
[0;36m:[0;0m
[0;36m51 |[0;0m ///
[0;36m52 |[0;0m /// - Parameter interval: The cadence from ``ReconnectPolicy/reArmInterval``.
[0;36m53 |[0;0m case startReArmTimer(Duration)
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m54 |[0;0m
[0;36m55 |[0;0m /// Cancel the re-arm cadence. Emitted when the adapter goes away, because re-arming
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEvent.swift:26:36: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m19 |[0;0m /// and the bridge that *built* the event is the thing that still holds the error when it comes
[0;36m20 |[0;0m /// time to resume a waiter with ``BluetoothError/connectionFailed(underlying:)``.
[0;36m21 |[0;0m enum ConnectionEvent: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing enum[0;0m
[0;36m22 |[0;0m /// Someone asked for a link.
[0;36m23 |[0;0m ///
[0;36m24 |[0;0m /// - Parameter timeout: The deadline for the attempt, or `nil` for a pending connect with
[0;36m25 |[0;0m /// no deadline — ``Central/connectWhenInRange(_:)``.
[0;36m26 |[0;0m case connectRequested(timeout: Duration?)
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m27 |[0;0m
[0;36m28 |[0;0m /// CoreBluetooth reported the link is up.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:21:35: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// Something that can run work later, and be told not to.
[0;36m17 |[0;0m protocol Scheduler: AnyObject, Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing protocol[0;0m
[0;36m18 |[0;0m /// Schedules `work` to run on the library queue after `duration`.
[0;36m19 |[0;0m ///
[0;36m20 |[0;0m /// - Returns: A handle that cancels the work if it has not run yet.
[0;36m21 |[0;0m func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m22 |[0;0m }
[0;36m23 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:38:35: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// The real scheduler: `DispatchQueue.asyncAfter` on the library queue.
[0;36m31 |[0;0m final class QueueScheduler: Scheduler {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m32 |[0;0m private let queue: DispatchQueue
[0;36m33 |[0;0m
[0;36m:[0;0m
[0;36m36 |[0;0m }
[0;36m37 |[0;0m
[0;36m38 |[0;0m func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m39 |[0;0m let item = DispatchWorkItem(block: work)
[0;36m40 |[0;0m // Wall time, not uptime. A give-up deadline means what it says, and
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:61:11: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m59 |[0;0m }
[0;36m60 |[0;0m
[0;36m61 |[0;0m extension Duration {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing extension[0;0m
[0;36m62 |[0;0m /// The duration in seconds, for the APIs that predate `Duration`.
[0;36m63 |[0;0m var seconds: Double {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/CentralConfiguration.swift:45:41: [1;31merror: [1;39m'seconds' is only available in macOS 13.0 or newer[0;0m
[0;36m10 |[0;0m /// There is deliberately no `restoreIdentifier` here. State restoration needs background
[0;36m11 |[0;0m /// modes to mean anything, and this library does not ship a knob that does nothing.
[0;36m12 |[0;0m public struct Configuration: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// How long a connect attempt may run before it fails with
[0;36m14 |[0;0m /// ``BluetoothError/connectTimeout``.
[0;36m:[0;0m
[0;36m42 |[0;0m /// - reconnectPolicy: How long to keep waiting after a link drops.
[0;36m43 |[0;0m /// - showPowerAlert: Whether the system may show its "Turn On Bluetooth" alert.
[0;36m44 |[0;0m public init(
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing initializer[0;0m
[0;36m45 |[0;0m connectTimeout: Duration = .seconds(10),
[0;36m|[0;0m `- [1;31merror: [1;39m'seconds' is only available in macOS 13.0 or newer[0;0m
[0;36m46 |[0;0m reconnectPolicy: ReconnectPolicy = .waitIndefinitely(),
[0;36m47 |[0;0m showPowerAlert: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Central.swift:186:56: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m26 |[0;0m /// type. It is spelled ``CharacteristicID`` in characteristic positions and ``ServiceID`` in
[0;36m27 |[0;0m /// service positions, so that neither obliges you to import CoreBluetooth.
[0;36m28 |[0;0m public actor Central {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing actor[0;0m
[0;36m29 |[0;0m /// The tunables this central was created with.
[0;36m30 |[0;0m nonisolated public let configuration: Configuration
[0;36m:[0;0m
[0;36m184 |[0;0m /// ``BluetoothError/connectionFailed(underlying:)`` if CoreBluetooth rejects it, or
[0;36m185 |[0;0m /// ``BluetoothError/bluetoothUnavailable(reason:)`` if the adapter is not powered on.
[0;36m186 |[0;0m public func connect(_ peripheralID: UUID, timeout: Duration? = nil) async throws -> Connection {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m187 |[0;0m try await establish(peripheralID, timeout: timeout ?? configuration.connectTimeout)
[0;36m188 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Central.swift:201:58: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m26 |[0;0m /// type. It is spelled ``CharacteristicID`` in characteristic positions and ``ServiceID`` in
[0;36m27 |[0;0m /// service positions, so that neither obliges you to import CoreBluetooth.
[0;36m28 |[0;0m public actor Central {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing actor[0;0m
[0;36m29 |[0;0m /// The tunables this central was created with.
[0;36m30 |[0;0m nonisolated public let configuration: Configuration
[0;36m:[0;0m
[0;36m199 |[0;0m /// ``BluetoothError/connectionFailed(underlying:)`` if CoreBluetooth rejects it, or
[0;36m200 |[0;0m /// ``BluetoothError/bluetoothUnavailable(reason:)`` if the adapter is not powered on.
[0;36m201 |[0;0m public func connect(_ discovery: Discovery, timeout: Duration? = nil) async throws -> Connection {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m202 |[0;0m try await connect(discovery.peripheralID, timeout: timeout)
[0;36m203 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/CentralConfiguration.swift:23:36: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m10 |[0;0m /// There is deliberately no `restoreIdentifier` here. State restoration needs background
[0;36m11 |[0;0m /// modes to mean anything, and this library does not ship a knob that does nothing.
[0;36m12 |[0;0m public struct Configuration: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// How long a connect attempt may run before it fails with
[0;36m14 |[0;0m /// ``BluetoothError/connectTimeout``.
[0;36m:[0;0m
[0;36m21 |[0;0m /// ``Central/connectWhenInRange(_:)``, both deliberately rely on the OS keeping the
[0;36m22 |[0;0m /// request pending instead.
[0;36m23 |[0;0m public var connectTimeout: Duration
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// How long to keep waiting after a link drops.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/CentralConfiguration.swift:45:29: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m10 |[0;0m /// There is deliberately no `restoreIdentifier` here. State restoration needs background
[0;36m11 |[0;0m /// modes to mean anything, and this library does not ship a knob that does nothing.
[0;36m12 |[0;0m public struct Configuration: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// How long a connect attempt may run before it fails with
[0;36m14 |[0;0m /// ``BluetoothError/connectTimeout``.
[0;36m:[0;0m
[0;36m42 |[0;0m /// - reconnectPolicy: How long to keep waiting after a link drops.
[0;36m43 |[0;0m /// - showPowerAlert: Whether the system may show its "Turn On Bluetooth" alert.
[0;36m44 |[0;0m public init(
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing initializer[0;0m
[0;36m45 |[0;0m connectTimeout: Duration = .seconds(10),
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m46 |[0;0m reconnectPolicy: ReconnectPolicy = .waitIndefinitely(),
[0;36m47 |[0;0m showPowerAlert: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift:33:20: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m21 |[0;0m /// Internal: the three factories below are the vocabulary for building a policy, and a
[0;36m22 |[0;0m /// publicly readable enum nobody can construct is only a second way to say the same thing.
[0;36m23 |[0;0m enum Persistence: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing enum[0;0m
[0;36m24 |[0;0m /// Do not wait at all: a dropped link goes straight to `disconnected`.
[0;36m25 |[0;0m case never
[0;36m:[0;0m
[0;36m31 |[0;0m ///
[0;36m32 |[0;0m /// - Parameter duration: How long to wait, measured in wall-clock time from the drop.
[0;36m33 |[0;0m case until(Duration)
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m34 |[0;0m }
[0;36m35 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift:46:31: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m /// The policy is consulted only for drops the library did not cause. Calling
[0;36m17 |[0;0m /// ``Connection/disconnect()`` never waits, whatever the policy says.
[0;36m18 |[0;0m public struct ReconnectPolicy: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m19 |[0;0m /// How long to keep a dropped link's pending connect armed.
[0;36m20 |[0;0m ///
[0;36m:[0;0m
[0;36m44 |[0;0m /// one loose. Each re-arm increments the attempt number in
[0;36m45 |[0;0m /// ``ConnectionState/reconnecting(arm:)``.
[0;36m46 |[0;0m public let reArmInterval: Duration?
[0;36m|[0;0m `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m47 |[0;0m
[0;36m48 |[0;0m private init(persistence: Persistence, reArmInterval: Duration?) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift:48:59: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m /// The policy is consulted only for drops the library did not cause. Calling
[0;36m17 |[0;0m /// ``Connection/disconnect()`` never waits, whatever the policy says.
[0;36m18 |[0;0m public struct ReconnectPolicy: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m19 |[0;0m /// How long to keep a dropped link's pending connect armed.
[0;36m20 |[0;0m ///
[0;36m:[0;0m
[0;36m46 |[0;0m public let reArmInterval: Duration?
[0;36m47 |[0;0m
[0;36m48 |[0;0m private init(persistence: Persistence, reArmInterval: Duration?) {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing initializer[0;0m
[0;36m49 |[0;0m self.persistence = persistence
[0;36m50 |[0;0m self.reArmInterval = reArmInterval
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift:71:53: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m /// The policy is consulted only for drops the library did not cause. Calling
[0;36m17 |[0;0m /// ``Connection/disconnect()`` never waits, whatever the policy says.
[0;36m18 |[0;0m public struct ReconnectPolicy: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m19 |[0;0m /// How long to keep a dropped link's pending connect armed.
[0;36m20 |[0;0m ///
[0;36m:[0;0m
[0;36m69 |[0;0m /// `nil` unless working around a wedged connection.
[0;36m70 |[0;0m /// - Returns: A policy that never gives up.
[0;36m71 |[0;0m public static func waitIndefinitely(reArmEvery: Duration? = nil) -> ReconnectPolicy {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing static method[0;0m
[0;36m72 |[0;0m ReconnectPolicy(persistence: .indefinitely, reArmInterval: reArmEvery)
[0;36m73 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift:85:44: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m /// The policy is consulted only for drops the library did not cause. Calling
[0;36m17 |[0;0m /// ``Connection/disconnect()`` never waits, whatever the policy says.
[0;36m18 |[0;0m public struct ReconnectPolicy: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m19 |[0;0m /// How long to keep a dropped link's pending connect armed.
[0;36m20 |[0;0m ///
[0;36m:[0;0m
[0;36m83 |[0;0m /// unless working around a wedged connection.
[0;36m84 |[0;0m /// - Returns: A policy that gives up after `limit`.
[0;36m85 |[0;0m public static func giveUp(after limit: Duration, reArmEvery: Duration? = nil) -> ReconnectPolicy {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing static method[0;0m
[0;36m86 |[0;0m ReconnectPolicy(persistence: .until(limit), reArmInterval: reArmEvery)
[0;36m87 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift:85:66: [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m16 |[0;0m /// The policy is consulted only for drops the library did not cause. Calling
[0;36m17 |[0;0m /// ``Connection/disconnect()`` never waits, whatever the policy says.
[0;36m18 |[0;0m public struct ReconnectPolicy: Sendable, Equatable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m19 |[0;0m /// How long to keep a dropped link's pending connect armed.
[0;36m20 |[0;0m ///
[0;36m:[0;0m
[0;36m83 |[0;0m /// unless working around a wedged connection.
[0;36m84 |[0;0m /// - Returns: A policy that gives up after `limit`.
[0;36m85 |[0;0m public static func giveUp(after limit: Duration, reArmEvery: Duration? = nil) -> ReconnectPolicy {
[0;36m|[0;0m | `- [1;31merror: [1;39m'Duration' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing static method[0;0m
[0;36m86 |[0;0m ReconnectPolicy(persistence: .until(limit), reArmInterval: reArmEvery)
[0;36m87 |[0;0m }
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/AsyncBLE.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/CentralDelegateBridge.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/CoreBluetoothSeam.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/DiscoveryCache.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/LiveCentral.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/LivePeripheral.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/PeripheralDelegateBridge.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore+IO.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionRegistry.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEvent.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionStateMachine.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Broadcaster.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/IOQueue.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Log.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/AdapterState.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/AdvertisementData.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/BluetoothError.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Central.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/CentralConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Characteristic.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/CharacteristicCodable.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/CharacteristicID.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Raw.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ConnectionState.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/DisconnectReason.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Discovery.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Logging.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ReconnectPolicy.swift /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/ScanOptions.swift -target arm64-apple-macos12.0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/SwiftExplicitPrecompiledModules -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature StrictConcurrency -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.build/out/SDKStatCaches.noindex/macosx27.0-26A425-80c5bbf1d171475443272936d42f90a36a22442a12e9d48fe1a705f55a1adfc4.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name AsyncBLE -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-macos27.0 -target-sdk-version 27.0 -target-sdk-name macosx27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/AsyncBLE.build/Debug/AsyncBLE-t.build/Objects-normal/arm64/AsyncBLE.abi.json
error: Build failed
BUILD FAILURE 6.4 macosSpm