Skip to content

Add macOS 26 compatibility improvements and multi-device support#179

Open
Skyearn wants to merge 17 commits intots1:masterfrom
Skyearn:master
Open

Add macOS 26 compatibility improvements and multi-device support#179
Skyearn wants to merge 17 commits intots1:masterfrom
Skyearn:master

Conversation

@Skyearn
Copy link
Copy Markdown

@Skyearn Skyearn commented Apr 4, 2026

Summary

This PR updates BLEUnlock for better compatibility with macOS 26 and adds support for monitoring multiple BLE devices at the same time.

What's Changed

  • added multi-device support so more than one BLE device can be selected and monitored
  • updated lock/unlock logic to work with the new multi-device flow
  • improved device name resolution with better fallbacks
  • filtered placeholder names such as N/A and other non-useful values
  • improved Apple device naming when only partial device information is available
  • added handling for rotating BLE identifiers to reduce cases where a monitored device becomes permanently lost
  • updated docs and release workflow for this fork

Why

On macOS 26, some BLE behaviors are less stable than before, especially around device identity and name resolution. At the same time, single-device monitoring was limiting for real-world use.

This change makes BLEUnlock more practical by:

  • allowing multiple trusted devices
  • reducing friction when BLE identifiers rotate
  • improving how devices are displayed in the device list
  • keeping the app usable on macOS 26

Notes

  • BLE identity can still rotate on some devices, especially Android phones and other privacy-focused BLE peripherals.
  • Where the system does not expose a stable identifier or readable name, BLEUnlock still has to fall back to UUID-based tracking.
  • This PR improves that behavior, but cannot fully eliminate it for every device.

Testing

  • built and ran the app locally on macOS
  • verified multi-device selection and monitoring flow
  • verified device name fallback behavior with real nearby BLE devices
  • verified the project builds successfully with Xcode

@rambolee
Copy link
Copy Markdown

rambolee commented Apr 9, 2026

@Skyearn 我目前使用的是 26.4 的 os。
之前有安装过原作者的最新 release 版本。
刚尝试更新使用 1.13.3 版本,我直接覆盖,并按照操作在安全隐私那里“允许打开” 。使用过程中出现如下问题,烦请看看什么情况。

  • 每次打开都需要重新授权 蓝牙 和 辅助功能。
  • 蓝牙扫描失败,无法检测到任何设备。

@v487qx95ng-ai
Copy link
Copy Markdown

v487qx95ng-ai commented Apr 9, 2026

@Skyearn 我目前使用的是 26.4 的 os。 之前有安装过原作者的最新 release 版本。 刚尝试更新使用 1.13.3 版本,我直接覆盖,并按照操作在安全隐私那里“允许打开” 。使用过程中出现如下问题,烦请看看什么情况。

  • 每次打开都需要重新授权 蓝牙 和 辅助功能。
  • 蓝牙扫描失败,无法检测到任何设备。

每次开机确实都有弹窗,但可以忽略.然后每次开机可以在终端输入sudo pkill bluetoothd,蓝牙就可以连到上次设备恢复正常了.

@rambolee
Copy link
Copy Markdown

@Skyearn 我目前使用的是 26.4 的 os。 之前有安装过原作者的最新 release 版本。 刚尝试更新使用 1.13.3 版本,我直接覆盖,并按照操作在安全隐私那里“允许打开” 。使用过程中出现如下问题,烦请看看什么情况。

  • 每次打开都需要重新授权 蓝牙 和 辅助功能。
  • 蓝牙扫描失败,无法检测到任何设备。

每次开机确实都有弹窗,但可以忽略.然后每次开机可以在终端输入sudo pkill bluetoothd,蓝牙就可以连到上次设备恢复正常了.

感谢,确实有效。

@Skyearn
Copy link
Copy Markdown
Author

Skyearn commented Apr 10, 2026

@Skyearn 我目前使用的是 26.4 的 os。 之前有安装过原作者的最新 release 版本。 刚尝试更新使用 1.13.3 版本,我直接覆盖,并按照操作在安全隐私那里“允许打开” 。使用过程中出现如下问题,烦请看看什么情况。

  • 每次打开都需要重新授权 蓝牙 和 辅助功能。
  • 蓝牙扫描失败,无法检测到任何设备。

因为这个项目需要签名,但是我没有购买 Apple Developer Program 会员。没法签名分发,所以就会有这个问题。因为没有签名,所以每次都要重新获取权限。不过软件会轮询权限,只要给到了权限,会自动开始工作。后面如果有新的办法我也会更新到 Readme 里

@rambolee
Copy link
Copy Markdown

rambolee commented Apr 10, 2026

@Skyearn 我目前使用的是 26.4 的 os。 之前有安装过原作者的最新 release 版本。 刚尝试更新使用 1.13.3 版本,我直接覆盖,并按照操作在安全隐私那里“允许打开” 。使用过程中出现如下问题,烦请看看什么情况。

  • 每次打开都需要重新授权 蓝牙 和 辅助功能。
  • 蓝牙扫描失败,无法检测到任何设备。

因为这个项目需要签名,但是我没有购买 Apple Developer Program 会员。没法签名分发,所以就会有这个问题。因为没有签名,所以每次都要重新获取权限。不过软件会轮询权限,只要给到了权限,会自动开始工作。后面如果有新的办法我也会更新到 Readme 里

@Skyearn 每次启动后都要 sudo pkill bluetoothd 才可以扫描 蓝牙设备也是这个原因吗?另外,我发现即使我配置了“密码”,但是唤醒后,不会自动录入密码。

@Skyearn
Copy link
Copy Markdown
Author

Skyearn commented Apr 10, 2026

@Skyearn 我目前使用的是 26.4 的 os。 之前有安装过原作者的最新 release 版本。 刚尝试更新使用 1.13.3 版本,我直接覆盖,并按照操作在安全隐私那里“允许打开” 。使用过程中出现如下问题,烦请看看什么情况。

  • 每次打开都需要重新授权 蓝牙 和 辅助功能。
  • 蓝牙扫描失败,无法检测到任何设备。

因为这个项目需要签名,但是我没有购买 Apple Developer Program 会员。没法签名分发,所以就会有这个问题。因为没有签名,所以每次都要重新获取权限。不过软件会轮询权限,只要给到了权限,会自动开始工作。后面如果有新的办法我也会更新到 Readme 里

@Skyearn 每次启动后都要 sudo pkill bluetoothd 才可以扫描 蓝牙设备也是这个原因吗?另外,我发现即使我配置了“密码”,但是唤醒后,不会自动录入密码。

是的,在我本地用我自己 ID 签名的是没有这个问题的,我刚刚使用我的签名重新编译了一次。应该可以解决这个问题。但是因为没有公证,所以还是会被 Gatekeeper 拦截。需要手动在设置 - 隐私与安全性中允许程序运行。
https://github.com/Skyearn/BLEUnlock/releases/tag/v1.13.4

后续如果有问题还请在我 fork 的项目里提 issuse 吧。避免打扰原作者。谢谢。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants