Zurück zu den Projekten
aktivv0.2.1

MacPhone

Ein natives macOS-Device-Lab, das ein echtes Bluetooth-LE-Gerät in einen Emulator bridgt.

MacPhone startet und steuert viele Android-Emulatoren und iOS-Simulatoren von einem Mac aus und bridgt ein echtes Bluetooth-LE-Gerät direkt in einen Emulator. Es spiegelt den vollständigen GATT-Baum auf den virtuellen Controller des Emulators, sodass On-Device-Apps die echten Services, Characteristics und das Advertisement sehen, ganz ohne Dongle.

Neuestes Release
v0.2.1
Plattform
macOS
Download
2 Release-Assets
Aktualisiert
4. Aug. 2026
MacPhone overview dashboard listing connected Android emulators and iOS simulators
Problem

Das Schwierige beim Testen einer hardwarenahen Mobile-App ist nicht die App, sondern ein echtes BLE-Gerät vor Code zu bringen, der in einem Emulator läuft.

Was ich gebaut habe

Eine SwiftUI-App, die AVDs und Xcode-Simulatoren verwaltet, sich über CoreBluetooth mit einem physischen BLE-Gerät verbindet, dessen vollständigen GATT-Baum spiegelt und ihn über ein virtuelles Bumble-Peripheral auf dem netsim-Controller des Android-Emulators neu broadcastet. Lese-, Schreib- und Notify-Verkehr wird in beide Richtungen weitergeleitet.

Entwickler-Setup

clonegit clone https://github.com/jx-grxf/MacPhone.git && cd MacPhone

Highlights

  • Verwaltet Android-Emulatoren (AVDs) und Xcode-iOS-Simulatoren parallel in einer Oberfläche.
  • Bridgt ein echtes BLE-Gerät über CoreBluetooth in den Emulator und spiegelt den vollständigen GATT-Baum.
  • Leitet Lese-/Schreibzugriffe und Notifications in beide Richtungen weiter, die getestete App sieht die echte Hardware.
  • Baut Sessions sauber ab: trennt abgestandene Clients und räumt das Bridge mit dem Elternprozess auf.