ClashBar 0.3.5
更新内容
本次更新聚焦 系统代理 Helper 安装方式重构与 TUN 协议栈记忆:系统代理 Helper 从
SMAppService登录项方式改为「管理员授权直装」——首次开启系统代理输入一次管理员密码,Helper 即被安装到系统目录/Library/PrivilegedHelperTools,之后更新 App 不再失效、无需重新批准后台项目;同时 TUN 协议栈选择改为持久记忆,退出 / 重启 App、重启或启停内核后都会自动恢复到上次选择的栈,而不再回落mixed。此外状态栏图标改为离屏合成单张模板图,渲染路径更简洁;资源包定位与图标加载逻辑进一步收敛。
📝 更新日志 (Changelog)
✨ 新增功能 (New Features)
系统代理 Helper 管理员授权安装:系统代理 Helper 不再走
SMAppService登录项注册与「后台项目批准」链路,改为通过osascript ... with administrator privileges一次性授权后,用cp -X将 Helper 二进制与 plist 安装到/Library/PrivilegedHelperTools及/Library/LaunchDaemons,并写入版本文件、launchctl bootstrap+kickstart拉起。首次开启系统代理时输入一次管理员密码即可,之后 更新 App 不会导致 Helper 失效,也不需要再去「系统设置 → 登录项」重复批准;仅当版本文件与当前 Helper 版本不一致时才会重新请求授权安装。TUN 协议栈记忆持久化:记住用户在 Proxy 快捷区选择的 TUN 协议栈;退出 / 重启 App、重启或启停内核后,开启 TUN 会自动恢复到上次选择的栈,而不再无条件回落
mixed。仅当配置文件本身未声明 stack 时才使用保存值,本地目标才写入记忆(远程目标不持久化),启动时若运行态栈与偏好一致则跳过多余 PATCH。
🚀 优化改进 (Improvements)
状态栏图标离屏合成:
StatusItemContentView不再继承NSView,改为纯@MainActor类,把图标与速率文字离屏合成为单张模板图直接赋给statusItem.button.image,移除子视图、AutoLayout 约束、透明占位图与 layout 逻辑,渲染路径更短、状态栏刷新更直接。系统代理 Helper 状态精简:围绕新的安装方式重整 Helper 健康检查与错误分支,移除「后台项目授权 / 签名不匹配 / 需批准」等旧登录项相关状态,统一为「已安装 / 授权取消 / 安装失败」等更贴合实际的诊断与提示;
TunPermissionService也复用同一套AdministratorShell授权封装。资源包定位与图标加载简化:收敛
AppResourceBundleLocator与BrandIcon的资源查找逻辑,减少冗余分支,避免打包环境下的资源定位问题。文档与打包脚本更新:文档站同步系统代理排障步骤(首次授权、取消后需再开一次、更新 App 无需重复批准),并补充删除 App 前手动卸载 Helper 的命令;README 增补 Linux DO 社区致谢,图标预处理脚本一并优化。
🐞 修复问题 (Bug Fixes)
更新 App 后系统代理 Helper 失效:修复此前经
SMAppService注册的 Helper 在 App 更新后需要重新批准后台项目、否则系统代理开关「开了不生效」的问题;Helper 现直装到系统目录并带版本标记,App 更新不再影响已安装的 Helper。
📥 下载地址 (Downloads)
请根据您的 Mac 处理器芯片选择对应的版本下载(普通用户建议下载带有 [内置内核] 的版本):
| 🖥 平台架构 (Architecture) | 📦 内置 Mihomo 内核 (默认推荐) | 🛠️ 无内核纯净版 (适合高阶用户) |
|---|---|---|
| ClashBar-0.3.5-apple-silicon.dmg | ClashBar-0.3.5-apple-silicon-no-core.dmg | |
| ClashBar-0.3.5-intel.dmg | ClashBar-0.3.5-intel-no-core.dmg |
What's Changed
Full Changelog: v0.3.4...v0.3.5