feat: 向导内置 HiTi Mac 驱动一键安装(补齐计划 §3.2"驱动 dmg 放包内"设计)

- setup/driver_install.dart:检测已装(/Library/Printers/HiTi)+ 内置 dmg 定位
  (从 resolvedExecutable 反推 flutter_assets/assets/drivers/,缺失降级官网链接)
  + 静默安装(hdiutil 挂载→定位 pkg→osascript 提权 installer→finally detach;
  挂载点名带随机序号必须从 attach 输出解析)
- 向导第 2 步重做状态机:驱动未装 → "一键安装驱动(内置安装包)"按钮
  (安装中提示输管理员密码,失败显示原因);驱动已装但无队列 → 连接/添加队列
  引导;无内置 dmg 的构建回退官网链接
- assets/drivers/ 收驱动 dmg(.gitignore 不入库,打包脚本检查缺失并警告,
  当前从 card-printer-agent/dist 拷入 2.4.2 版,25MB)
- 实测:挂载/pkg 定位/detach 免密链路全通过;打包 47MB dmg 内含驱动,
  冒烟启动正常(服务已占主端口 38200);一键安装的提权弹窗待用户实测
This commit is contained in:
dzc committed 2026-09-21 14:04:55 +08:00
1 parent 3ecac9a302
commit d475cac6ab
5 files changed
+173 -4

No files matched your search

+8
View File
@@ -12,6 +12,14 @@ DMG="dist/${APP_NAME}-macOS.dmg"
echo "==> flutter build macos --release"
flutter build macos --release
echo "==> 检查内置驱动"
if ls assets/drivers/*.dmg >/dev/null 2>&1; then
echo "已内置:$(ls assets/drivers/*.dmg)"
else
echo "警告:assets/drivers/ 下没有驱动 dmg,产出的安装包在向导中将只提供官网链接(一键安装不可用)。"
echo " 将 HiTiCardTypeMacDrivers_2.4.2.dmg 放入 assets/drivers/ 后重新打包即可内置。"
fi
echo "==> ad-hoc 就地签名(含全部嵌入内容;构建产物位于最终位置,直接在此重签)"
# 注意:ad-hoc 签名不要加 --options=runtime——hardened runtime 的库校验(library validation)
# 要求所有嵌入库与主程序同 Team ID,ad-hoc 无 Team 会导致 framework 加载被 dyld 拒绝