The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of CoreBluetoothEmulator, reference main (579963), with Swift 6.0 for macOS (SPM) on 22 Nov 2025 06:59:58 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/1amageek/CoreBluetoothEmulator.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/1amageek/CoreBluetoothEmulator
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 579963e Implement multi-process support and update documentation
Cloned https://github.com/1amageek/CoreBluetoothEmulator.git
Revision (git rev-parse @):
579963e0ceffdf8a452c7e4fdb033fece3324c92
SUCCESS checkout https://github.com/1amageek/CoreBluetoothEmulator.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/1amageek/CoreBluetoothEmulator.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-5BDAB9E9C0126B9D.txt
[3/18] Compiling CoreBluetoothEmulator EmulatedCBService.swift
[4/18] Compiling CoreBluetoothEmulator EmulatedCBL2CAPChannel.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBL2CAPChannel.swift:41:16: warning: immutable value 'inputPipe' was never used; consider replacing with '_' or removing it
 39 |
 40 |         // Create streams from pipes
 41 |         if let inputPipe = inputPipe, let outputPipe = outputPipe {
    |                `- warning: immutable value 'inputPipe' was never used; consider replacing with '_' or removing it
 42 |             // Use CFStream for proper stream creation
 43 |             var readStream: Unmanaged<CFReadStream>?
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBL2CAPChannel.swift:41:43: warning: immutable value 'outputPipe' was never used; consider replacing with '_' or removing it
 39 |
 40 |         // Create streams from pipes
 41 |         if let inputPipe = inputPipe, let outputPipe = outputPipe {
    |                                           `- warning: immutable value 'outputPipe' was never used; consider replacing with '_' or removing it
 42 |             // Use CFStream for proper stream creation
 43 |             var readStream: Unmanaged<CFReadStream>?
[5/18] Compiling CoreBluetoothEmulator EmulatedCBPeripheral.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBL2CAPChannel.swift:41:16: warning: immutable value 'inputPipe' was never used; consider replacing with '_' or removing it
 39 |
 40 |         // Create streams from pipes
 41 |         if let inputPipe = inputPipe, let outputPipe = outputPipe {
    |                `- warning: immutable value 'inputPipe' was never used; consider replacing with '_' or removing it
 42 |             // Use CFStream for proper stream creation
 43 |             var readStream: Unmanaged<CFReadStream>?
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBL2CAPChannel.swift:41:43: warning: immutable value 'outputPipe' was never used; consider replacing with '_' or removing it
 39 |
 40 |         // Create streams from pipes
 41 |         if let inputPipe = inputPipe, let outputPipe = outputPipe {
    |                                           `- warning: immutable value 'outputPipe' was never used; consider replacing with '_' or removing it
 42 |             // Use CFStream for proper stream creation
 43 |             var readStream: Unmanaged<CFReadStream>?
[6/18] Compiling CoreBluetoothEmulator InMemoryEmulatorTransport.swift
[7/19] Compiling CoreBluetoothEmulator EmulatedCBCentral.swift
[8/19] Compiling CoreBluetoothEmulator EmulatedCBCentralManager.swift
[9/19] Compiling CoreBluetoothEmulator EmulatorBus.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:39:49: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
  37 |     private var publishedL2CAPChannels: [UUID: [CBL2CAPPSM: Bool]] = [:]  // peripheral -> PSM -> encryption required
  38 |     private var openL2CAPChannels: [UUID: EmulatedCBL2CAPChannel] = [:]  // channel identifier -> channel
  39 |     private var ancsAuthorizationStatus: [UUID: CBPeripheralManagerAuthorizationStatus] = [:]  // central -> status
     |                                                 `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
  40 |
  41 |     private struct ConnectionPair: Hashable {
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1136:17: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1134 |     public func updateANCSAuthorization(
1135 |         for centralIdentifier: UUID,
1136 |         status: CBPeripheralManagerAuthorizationStatus
     |                 `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1137 |     ) async {
1138 |         guard configuration.fireANCSAuthorizationUpdates else { return }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1150:70: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1148 |     }
1149 |
1150 |     public func getANCSAuthorization(for centralIdentifier: UUID) -> CBPeripheralManagerAuthorizationStatus {
     |                                                                      `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1151 |         return ancsAuthorizationStatus[centralIdentifier] ?? .notDetermined
1152 |     }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:246:34: warning: no 'async' operations occur within 'await' expression
 244 |
 245 |                 // Create peripheral proxy with advertisement data
 246 |                 let peripheral = await peripheralManager.createPeripheralProxy(for: central, advertisementData: advData)
     |                                  `- warning: no 'async' operations occur within 'await' expression
 247 |
 248 |                 // Generate RSSI
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:413:16: warning: no 'async' operations occur within 'await' expression
 411 |         }
 412 |
 413 |         return await manager.getServices(matching: serviceUUIDs)
     |                `- warning: no 'async' operations occur within 'await' expression
 414 |     }
 415 |
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:432:16: warning: no 'async' operations occur within 'await' expression
 430 |         }
 431 |
 432 |         return await manager.getCharacteristics(matching: characteristicUUIDs, for: service)
     |                `- warning: no 'async' operations occur within 'await' expression
 433 |     }
 434 |
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:450:16: warning: no 'async' operations occur within 'await' expression
 448 |         }
 449 |
 450 |         return await manager.getDescriptors(for: characteristic)
     |                `- warning: no 'async' operations occur within 'await' expression
 451 |     }
 452 |
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:728:17: warning: immutable value 'centralId' was never used; consider replacing with '_' or removing it
 726 |         // Send notification event in distributed mode
 727 |         if case .distributed = transportMode {
 728 |             for centralId in targetCentrals {
     |                 `- warning: immutable value 'centralId' was never used; consider replacing with '_' or removing it
 729 |                 let event = EmulatorInternalEvent.notificationSent(
 730 |                     peripheralID: peripheralIdentifier,
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1044:16: warning: no 'async' operations occur within 'await' expression
1042 |
1043 |         // Create peripheral proxy with stored advertisement data
1044 |         return await peripheralManager.createPeripheralProxy(
     |                `- warning: no 'async' operations occur within 'await' expression
1045 |             for: centralReg.manager!,
1046 |             advertisementData: peripheralReg.advertisementData
[10/19] Compiling CoreBluetoothEmulator EmulatorConfiguration.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:39:49: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
  37 |     private var publishedL2CAPChannels: [UUID: [CBL2CAPPSM: Bool]] = [:]  // peripheral -> PSM -> encryption required
  38 |     private var openL2CAPChannels: [UUID: EmulatedCBL2CAPChannel] = [:]  // channel identifier -> channel
  39 |     private var ancsAuthorizationStatus: [UUID: CBPeripheralManagerAuthorizationStatus] = [:]  // central -> status
     |                                                 `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
  40 |
  41 |     private struct ConnectionPair: Hashable {
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1136:17: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1134 |     public func updateANCSAuthorization(
1135 |         for centralIdentifier: UUID,
1136 |         status: CBPeripheralManagerAuthorizationStatus
     |                 `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1137 |     ) async {
1138 |         guard configuration.fireANCSAuthorizationUpdates else { return }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1150:70: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1148 |     }
1149 |
1150 |     public func getANCSAuthorization(for centralIdentifier: UUID) -> CBPeripheralManagerAuthorizationStatus {
     |                                                                      `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1151 |         return ancsAuthorizationStatus[centralIdentifier] ?? .notDetermined
1152 |     }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:246:34: warning: no 'async' operations occur within 'await' expression
 244 |
 245 |                 // Create peripheral proxy with advertisement data
 246 |                 let peripheral = await peripheralManager.createPeripheralProxy(for: central, advertisementData: advData)
     |                                  `- warning: no 'async' operations occur within 'await' expression
 247 |
 248 |                 // Generate RSSI
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:413:16: warning: no 'async' operations occur within 'await' expression
 411 |         }
 412 |
 413 |         return await manager.getServices(matching: serviceUUIDs)
     |                `- warning: no 'async' operations occur within 'await' expression
 414 |     }
 415 |
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:432:16: warning: no 'async' operations occur within 'await' expression
 430 |         }
 431 |
 432 |         return await manager.getCharacteristics(matching: characteristicUUIDs, for: service)
     |                `- warning: no 'async' operations occur within 'await' expression
 433 |     }
 434 |
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:450:16: warning: no 'async' operations occur within 'await' expression
 448 |         }
 449 |
 450 |         return await manager.getDescriptors(for: characteristic)
     |                `- warning: no 'async' operations occur within 'await' expression
 451 |     }
 452 |
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:728:17: warning: immutable value 'centralId' was never used; consider replacing with '_' or removing it
 726 |         // Send notification event in distributed mode
 727 |         if case .distributed = transportMode {
 728 |             for centralId in targetCentrals {
     |                 `- warning: immutable value 'centralId' was never used; consider replacing with '_' or removing it
 729 |                 let event = EmulatorInternalEvent.notificationSent(
 730 |                     peripheralID: peripheralIdentifier,
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1044:16: warning: no 'async' operations occur within 'await' expression
1042 |
1043 |         // Create peripheral proxy with stored advertisement data
1044 |         return await peripheralManager.createPeripheralProxy(
     |                `- warning: no 'async' operations occur within 'await' expression
1045 |             for: centralReg.manager!,
1046 |             advertisementData: peripheralReg.advertisementData
[11/19] Compiling CoreBluetoothEmulator EmulatedCBCharacteristic.swift
[12/19] Compiling CoreBluetoothEmulator EmulatedCBDescriptor.swift
[13/19] Emitting module CoreBluetoothEmulator
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:39:49: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
  37 |     private var publishedL2CAPChannels: [UUID: [CBL2CAPPSM: Bool]] = [:]  // peripheral -> PSM -> encryption required
  38 |     private var openL2CAPChannels: [UUID: EmulatedCBL2CAPChannel] = [:]  // channel identifier -> channel
  39 |     private var ancsAuthorizationStatus: [UUID: CBPeripheralManagerAuthorizationStatus] = [:]  // central -> status
     |                                                 `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
  40 |
  41 |     private struct ConnectionPair: Hashable {
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1136:17: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1134 |     public func updateANCSAuthorization(
1135 |         for centralIdentifier: UUID,
1136 |         status: CBPeripheralManagerAuthorizationStatus
     |                 `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1137 |     ) async {
1138 |         guard configuration.fireANCSAuthorizationUpdates else { return }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/EmulatorBus.swift:1150:70: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1148 |     }
1149 |
1150 |     public func getANCSAuthorization(for centralIdentifier: UUID) -> CBPeripheralManagerAuthorizationStatus {
     |                                                                      `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
1151 |         return ancsAuthorizationStatus[centralIdentifier] ?? .notDetermined
1152 |     }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBPeripheralManager.swift:312:48: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
310 |     // MARK: - Authorization
311 |
312 |     public class func authorizationStatus() -> CBPeripheralManagerAuthorizationStatus {
    |                                                `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
313 |         return .authorized
314 |     }
[14/19] Compiling CoreBluetoothEmulator EmulatorInternalEvent.swift
[15/19] Compiling CoreBluetoothEmulator EmulatorTransport.swift
[16/19] Compiling CoreBluetoothEmulator EmulatedCBPeripheralManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBPeripheralManager.swift:312:48: warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
310 |     // MARK: - Authorization
311 |
312 |     public class func authorizationStatus() -> CBPeripheralManagerAuthorizationStatus {
    |                                                `- warning: 'CBPeripheralManagerAuthorizationStatus' was deprecated in macOS 10.15: Use CBManagerAuthorization instead
313 |         return .authorized
314 |     }
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBPeripheralManager.swift:303:13: warning: initialization of immutable value 'centralProxy' was never used; consider replacing with assignment to '_' or removing it
301 |     @available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)
302 |     internal func notifyL2CAPChannelOpened(_ channel: EmulatedCBL2CAPChannel) async {
303 |         let centralProxy = EmulatedCBCentral(identifier: channel.peer.identifier)
    |             `- warning: initialization of immutable value 'centralProxy' was never used; consider replacing with assignment to '_' or removing it
304 |
305 |         notifyDelegate { delegate in
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Internal/EmulatedCBPeripheralManager.swift:318:13: warning: initialization of immutable value 'status' was never used; consider replacing with assignment to '_' or removing it
316 |     @available(iOS 13.1, *)
317 |     internal func notifyANCSAuthorizationUpdate(for centralIdentifier: UUID) async {
318 |         let status = await EmulatorBus.shared.getANCSAuthorization(for: centralIdentifier)
    |             `- warning: initialization of immutable value 'status' was never used; consider replacing with assignment to '_' or removing it
319 |         let centralProxy = EmulatedCBCentral(identifier: centralIdentifier)
320 |
[17/19] Compiling CoreBluetoothEmulator CoreBluetoothEmulator.swift
[18/19] Compiling CoreBluetoothEmulator EmulatedDelegates.swift
[19/19] Compiling CoreBluetoothEmulator XPCEmulatorTransport.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Transport/XPCEmulatorTransport.swift:106:27: warning: instance will be immediately deallocated because property 'delegate' is 'weak'
104 |         // Create XPC listener for incoming connections
105 |         let listener = NSXPCListener(machServiceName: serviceName)
106 |         listener.delegate = XPCListenerDelegate(transport: self)
    |                           |- warning: instance will be immediately deallocated because property 'delegate' is 'weak'
    |                           `- note: a strong reference is required to prevent the instance from being deallocated
107 |         listener.resume()
108 |     }
Foundation.NSXPCListener:10:19: note: 'delegate' declared here
 8 |     open class func anonymousListener() -> NSXPCListener
 9 |     public init(machServiceName name: String)
10 |     weak open var delegate: (any NSXPCListenerDelegate)? { get set }
   |                   `- note: 'delegate' declared here
11 |     open var endpoint: NSXPCListenerEndpoint { get }
12 |     open func resume()
/Users/admin/builder/spi-builder-workspace/Sources/CoreBluetoothEmulator/Transport/XPCEmulatorTransport.swift:106:27: warning: weak reference will always be nil because the referenced object is deallocated here
104 |         // Create XPC listener for incoming connections
105 |         let listener = NSXPCListener(machServiceName: serviceName)
106 |         listener.delegate = XPCListenerDelegate(transport: self)
    |                           `- warning: weak reference will always be nil because the referenced object is deallocated here
107 |         listener.resume()
108 |     }
Build complete! (5.54s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CoreBluetoothEmulator",
  "name" : "CoreBluetoothEmulator",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "CoreBluetoothEmulator",
      "targets" : [
        "CoreBluetoothEmulator"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CoreBluetoothEmulatorTests",
      "module_type" : "SwiftTarget",
      "name" : "CoreBluetoothEmulatorTests",
      "path" : "Tests/CoreBluetoothEmulatorTests",
      "sources" : [
        "CoreBluetoothEmulatorTests.swift",
        "Integration/ANCSAuthorizationTests.swift",
        "Integration/AdvertisementAutoGenerationTests.swift",
        "Integration/BackpressureTests.swift",
        "Integration/BidirectionalEventsTests.swift",
        "Integration/ConnectionEventsTests.swift",
        "Integration/FullWorkflowTests.swift",
        "Integration/L2CAPChannelTests.swift",
        "Integration/MTUManagementTests.swift",
        "Integration/ScanOptionsTests.swift",
        "Integration/StateRestorationTests.swift"
      ],
      "target_dependencies" : [
        "CoreBluetoothEmulator"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CoreBluetoothEmulator",
      "module_type" : "SwiftTarget",
      "name" : "CoreBluetoothEmulator",
      "path" : "Sources/CoreBluetoothEmulator",
      "product_memberships" : [
        "CoreBluetoothEmulator"
      ],
      "sources" : [
        "CoreBluetoothEmulator.swift",
        "EmulatedDelegates.swift",
        "EmulatorBus.swift",
        "EmulatorConfiguration.swift",
        "EmulatorInternalEvent.swift",
        "EmulatorTransport.swift",
        "Internal/EmulatedCBCentral.swift",
        "Internal/EmulatedCBCentralManager.swift",
        "Internal/EmulatedCBCharacteristic.swift",
        "Internal/EmulatedCBDescriptor.swift",
        "Internal/EmulatedCBL2CAPChannel.swift",
        "Internal/EmulatedCBPeripheral.swift",
        "Internal/EmulatedCBPeripheralManager.swift",
        "Internal/EmulatedCBService.swift",
        "Transport/InMemoryEmulatorTransport.swift",
        "Transport/XPCEmulatorTransport.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.