The Swift Package Index logo.Swift Package Index

Build Information

Successful build of CoreBluetoothEmulator, reference main (579963), with Swift 6.1 for macOS (SPM) on 22 Nov 2025 06:53:11 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats

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.1
Building package at path:  $PWD
https://github.com/1amageek/CoreBluetoothEmulator.git
https://github.com/1amageek/CoreBluetoothEmulator.git
{
  "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"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/18] Compiling CoreBluetoothEmulator EmulatedCBCentral.swift
[4/18] Compiling CoreBluetoothEmulator EmulatedCBCentralManager.swift
[5/19] Compiling CoreBluetoothEmulator CoreBluetoothEmulator.swift
[6/19] Compiling CoreBluetoothEmulator EmulatedDelegates.swift
[7/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 |     }
[8/19] Compiling CoreBluetoothEmulator EmulatorInternalEvent.swift
[9/19] Compiling CoreBluetoothEmulator EmulatorTransport.swift
[10/19] 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>?
[11/19] 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>?
[12/19] Compiling CoreBluetoothEmulator EmulatedCBService.swift
[13/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 |
[14/19] Compiling CoreBluetoothEmulator InMemoryEmulatorTransport.swift
[15/19] Compiling CoreBluetoothEmulator EmulatedCBCharacteristic.swift
[16/19] Compiling CoreBluetoothEmulator EmulatedCBDescriptor.swift
[17/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
[18/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
[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 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSXPCConnection.h:137:55: note: 'delegate' declared here
135 |
136 | // The delegate for the connection listener. If no delegate is set, all new connections will be rejected. See the protocol for more information on how to implement it.
137 | @property (nullable, weak) id <NSXPCListenerDelegate> delegate;
    |                                                       `- note: 'delegate' declared here
138 |
139 | // Get an endpoint object which may be sent over an existing connection. This allows the receiver of the endpoint to create a new connection to this NSXPCListener. The NSXPCListenerEndpoint uniquely names this listener object across connections.
/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.74s)
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.