結論
模擬器不支援藍牙硬件模擬,無法作為外設或中心設備進行藍牙通訊測試。
原因
- 模擬器運行在 Mac 虛擬環境中,無法訪問物理藍牙控制器。
- CoreBluetooth 框架依賴底層硬件,模擬器未實現對應 stub。
測試方案
- 兩台真機:一台作 Peripheral (外設,廣播服務),一台作 Central (中心,掃描連接)。
- 一台真機 + 一台 Mac (作外設):Mac 運行 LightBlue 或自寫 macOS App 模擬外設,iPhone 真機作中央。
- 藍牙開發板:如 Nordic nRF52 DK、TI CC2650 LaunchPad,成本低、可編程模擬各種 GATT 服務。
開發建議
- 使用 `CBCentralManager` / `CBPeripheralManager` API。
- Info.plist 添加 `NSBluetoothAlwaysUsageDescription` (iOS 13+) 或 `NSBluetoothPeripheralUsageDescription`。
- 處理狀態恢復 (`willRestoreState:`) 以支持後台長連接。
- 單元測試可 Mock `CBPeripheral`/`CBCentral` 協議,但集成測試必須真機。