如何清除MacOS上的CoreBluetooth缓存?

Joh*_*hen 12 macos core-bluetooth

我正在开发蓝牙LE设备,因为MacOS缓存服务而遇到麻烦.如果我尝试删除服务或在我正在开发的设备上更改其UUID,则更改不会显示在Mac上,而是继续从设备中看到旧的服务列表和UUID.我尝试去另一台没有与我的设备配对的Mac,它看到了具有正确UUID的新服务列表,所以它似乎是我的开发Mac的缓存问题.

我在/ Library/Preferences中找到了com.apple.Bluetooth.plist文件并将其删除了,但是系统把它放回了相同的数据,我认为系统已经将缓存加载到内存中,只是在需要时将其写回来.

有人知道如何擦除MacOS CoreBluetooth设备/服务缓存吗?

Joh*_*hen 34

我终于找到了问题的根源 - 在名为ByHost的文件夹中的用户首选项文件夹中有一个缓存.以下是清除蓝牙缓存的步骤:

  • 关闭蓝牙
  • 从/ Library/Preferences中删除com.apple.Bluetooth.plist
  • 从〜/ Library/Preferences/ByHost中删除名为com.apple.Bluetooth.somehexuuidstuff.plist的文件(请注意,这是用户首选项文件夹,而不是系统文件夹)
  • 打开蓝牙

完成后,我的外围设备服务被正确识别.从我在网上找到的,在/ Library/Preferences中可能还有一些与HID或耳机或其他东西相关的com.apple.Bluetooth文件 - 我不知道删除那些是否很重要,因为我没有把它们放在我的系统上