Core Bluetooth Mock

Version number Platform Carthage compatible SPM compatible

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

Core Bluetooth 是什么?

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

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

Core Bluetooth Mock!

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

要求

Core Bluetooth Mock 库仅以 Swift 提供,并且与以下版本兼容:

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

注意

对于运行 Objective-C 的项目,我们建议使用 https://github.com/Rightpoint/RZBluetooth 库。

安装

该库支持 CocoaPodsCarthageSwift Package Manager

CocoaPods
Carthage
Swift Package Manager

文档

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

CoreBluetooth 迁移

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

注意

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

示例应用程序:nRF Blinky

nRF Blinky 是一个面向新手的 BLE 开发人员的示例应用程序,并且还演示了 Core Bluetooth Mock 库的使用。 该应用程序控制 nRF5DK 上的 LED,并在每次按下和释放套件上的按钮时接收通知。

mock 实现用于单元测试和 UI 测试中。 请参阅 AppDelegate.swift(在其中设置 mock 环境)和 UITests.swiftUITests.swift 类。

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

Nordic LED 和按钮服务

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

要求

安装和使用

脚注

  1. Xcode 15 已停止在模拟器中支持 iOS 9.0 和 tvOS 9.0。 现在,两个平台的最低支持版本均为 12.0。 2