Core Bluetooth Mock

Version number Platform Carthage compatible SPM compatible

Core Bluetooth Mock 库旨在模拟 Core Bluetooth 对象,提供了一种简便的方法来测试启用蓝牙的应用程序。由于原生 Bluetooth API 在模拟器上不受支持,因此使用此库,您可以运行、测试此类应用程序并进行截图,而无需物理手机或平板电脑。您还可以在外围设备仍在开发中时开始开发 iOS 应用程序。

什么是 Core Bluetooth?

Core Bluetooth 框架提供了您的应用程序与配备低功耗 (LE) 无线技术的 Bluetooth 设备通信所需的类。它需要 iPhone 或 iPad 才能工作,这使得启用蓝牙的应用程序难以测试。正如文档所述:

不要对 Core Bluetooth 框架的任何类进行子类化。不支持重写这些类,并且会导致未定义的行为。

Core Bluetooth Mock!

Core Bluetooth Mock 库定义了许多 CBM... 类和常量,它们包装或模仿来自 Core Bluetooth 框架的相应 CB... 对应项。例如,CBMCentralManager 具有与 CBCentralManager 相同的 API 和行为,等等。在物理 iDevice 上,对 CBMCentralManagerCBMPeripheral 的所有调用都将转发到其原生等效项,但在模拟器上,将使用用户定义的模拟实现。

要求

Core Bluetooth Mock 库仅在 Swift 中可用,并且与以下平台兼容:

(某些功能仅在新平台上可用)。

注意

对于运行 Objective-C 的项目,我们推荐 https://github.com/Rightpoint/RZBluetooth 库。

安装

该库支持 CocoaPodsCarthageSwift Package Manager

CocoaPods
Carthage
Swift Package Manager

文档

该库的文档可在此处获得:here

CoreBluetooth 迁移

迁移示例可在此处获得:here。有关分步指南,请参阅 Pull Request #1

注意

迁移示例应用程序当前不在测试中使用模拟。为此,请查看此存储库中的 Example 文件夹,其中包含 nRF Blinky 应用程序,该应用程序在单元测试和 UI 测试中使用模拟外围设备。 参见下文。

示例应用程序:nRF Blinky

nRF Blinky 是一款面向新手的 BLE 开发者,并且还演示了 Core Bluetooth Mock 库的使用。此应用程序控制 nRF5DK 上的 LED,并在每次按下和释放工具包上的按钮时接收通知。

模拟实现在单元测试和 UI 测试中使用。 请参阅 AppDelegate.swift,其中设置了模拟环境,以及 UITests.swiftUITests.swift 类。

模拟外围设备在 MockPeripherals.swift 中定义。

Nordic LED 和按钮服务

Nordic Semiconductor 提供的一项简化的专有服务,包含两个特征,一个用于控制 LED3,一个用于控制 Button1。

要求

安装和使用

脚注

  1. Xcode 15 放弃了对模拟器中 iOS 9.0 和 tvOS 9.0 的支持。 现在,两个平台支持的最低版本都是 12.0。 2