我正在开发蓝牙LE设备,因为MacOS缓存了这些服务而遇到了麻烦。如果我尝试删除服务或在我正在开发的设备上更改其UUID,则更改不会显示在Mac上,而是继续从设备中看到旧的服务列表和UUID。我尝试去另一台没有与我的设备配对的Mac,它看到了具有正确UUID的新服务列表,所以它似乎是我的开发Mac的缓存问题。
我在/ Library / Preferences中找到com.apple.Bluetooth.plist文件并将其删除,但是系统将其放回原来的相同数据,我认为系统已将缓存加载到内存中并且只是将其写回在需要时出来。
有人知道如何擦除MacOS CoreBluetooth设备/服务缓存吗?
答案 0 :(得分:33)
我终于找到了问题的根源 - 在名为ByHost的文件夹中的用户首选项文件夹中有一个缓存。以下是清除蓝牙缓存的步骤:
在执行此操作后,我的外围设备服务被正确识别。从我在网上找到的,在/ Library / Preferences中可能还有一些与HID或耳机或其他东西相关的com.apple.Bluetooth文件 - 我不知道删除那些是否很重要,因为我没有把它们放在我的系统上。
答案 1 :(得分:0)
您还可以通过终端中的以下命令清除缓存:
sudo rm /Library/Preferences/com.apple.Bluetooth.plist && sudo shutdown -r now
这与约翰之前解释的一样;确保您没有正在进行/未保存的进程(因为此命令将重新启动您的机器)。