Как я могу очистить кеш CoreBluetooth на MacOS?

Я разрабатываю устройство Bluetooth LE, и у меня возникают проблемы из-за кэширования MacOS служб. Если я попытаюсь удалить сервис или изменить его UUID на устройстве, которое я разрабатываю, изменение не отображается на Mac, и вместо этого я продолжаю видеть старый список служб и UUID с устройства. Я попытался перейти на другой Mac, который не был сопряжен с моим устройством, и он увидел новый список сервисов с правильными UUID, поэтому он, похоже, является проблемой кэширования с моей разработкой Mac.

Я нашел файл com.apple.Bluetooth.plist в /Library/Preferences и удалил его, но система вернула его с теми же данными, я полагаю, что система загружает кеш в память и просто записывает ее обратно при необходимости.

Кто-нибудь знает, как стереть кэш-память устройства/службы MacOS CoreBluetooth?

Ответ 1

Наконец-то я нашел источник проблемы - есть кеш в папке предпочтений пользователя в папке с именем ByHost. Ниже приведены шаги по очистке кеша Bluetooth:

  • Отключить Bluetooth
  • Удалить com.apple.Bluetooth.plist из /Library/Preferences
  • Удалить файлы с именем com.apple.Bluetooth.somehexuuidstuff.plist от ~/Library/Preferences/ByHost (обратите внимание, что это предпочтение пользователя папка, а не системная).
  • Включить Bluetooth

После этого мои периферийные службы будут правильно идентифицированы. Из того, что я нашел в Интернете, могут быть и другие файлы com.apple.Bluetooth в /Library/Preferences, связанные с HID или гарнитурами или что-то в этом роде - я не знаю, важно ли это удалить, поскольку я не имейте их в моей системе.