dzc
|
9ece6cc294
|
fix(windows): 驱动安装假成功——InstallShield 壳提前退出骗过 -Wait,改 pnputil 实时校验
用户实测:一键安装日志显示 12 秒"装完"但打印机仍离线。根因:HiTi 的
Setup64.exe 是自解压壳(InstallShield 类),Start-Process -Wait 等的是壳进程,
内层安装向导未真正完成即返回;且旧的注册表标记机制把这次假安装记成了"已装"。
修复:
- 安装流程尾部增加 pnputil /enum-drivers 校验(匹配 cs2xxhcd/htitahcd/hiti),
未发现驱动即报"校验未通过"(引导重试或手动运行 Setup64),不再盲写标记
- queryInstalled 改为 pnputil 实时校验驱动商店(唯一真源,废弃注册表标记——
假安装误写后向导会错误地不再显示安装按钮)
- 成功日志改为提示"拔插 USB 重新枚举设备后再检测"
|
2026-09-21 16:46:31 +08:00 |
|
dzc
|
170e9ddc5e
|
feat(windows): 向导内置 HiTi Windows 驱动一键安装(对齐 mac 的"装 App 即用"体验)
用户实测定论:CS-2xx 的 USB 是自定义设备(驱动包内含 CS2xxhcd.inf 内核驱动),
PavoApi 直打依赖驱动建立的 USB 通道——无驱动时枚举到设备但状态返回离线,
"免驱动"假设不成立。产品要求两平台一致:驱动随 App 内置、向导一键安装。
- assets/drivers/CS2xx_Windows_Driver.zip:HiTi 官网 CS-2xx Windows 驱动
(2.6.25.48)整目录 zip(含 CS2xx/Setup64.exe),33MB,不入 git
- DriverInstall Windows 分支:Expand-Archive 解压到临时目录 → 递归定位
Setup64.exe(兜底 setup/autorun)→ PowerShell Start-Process -Verb RunAs -Wait
提权安装(UAC 一次)→ 写安装标记(HKCU\Software\zax\desktop-plugin,
系统驱动安装状态无统一可查标志)→ finally 清理临时目录
- 向导第 2 步统一双平台状态机:驱动未装(异步查标记/目录)→"一键安装驱动
(内置安装包)";轮询 3 秒自动刷新安装/连接状态
- bundledInstallerPath 双平台资产路径推导(mac .dmg / win .zip);
.gitignore 增 *.zip;assets/drivers/README 更新双平台放置约定
|
2026-09-21 16:38:11 +08:00 |
|
dzc
|
d475cac6ab
|
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);一键安装的提权弹窗待用户实测
|
2026-09-21 14:04:55 +08:00 |
|
dzc
|
3ecac9a302
|
feat: Phase 4 收尾 + Phase 5 打包(首启向导/开机自启/URL scheme 闭环/mac dmg)
Phase 4 剩余三项:
- 首次引导向导(setup/first_run + ui/setup_wizard):服务自检(含 C# 助手共存
提示)→ 打印机检测与 HiTi 驱动安装指引(官网链接/重新检测,mac 与 win 文案
分支,允许无打印机完成)→ 开机自启开关 + scheme 注册;侧栏底部常驻设置区
(自启开关 + 重新运行引导)
- 开机自启(setup/autostart):mac 写 LaunchAgent(RunAtLoad 一次性,不用
KeepAlive——托盘退出不能被拉回);Windows 走 HKCU Run(reg 命令免 win32 依赖)
- URL scheme 闭环:单实例唤醒端口 38210(setup/single_instance)——zaxprint://
唤起或重复双击启动第二进程时通知常驻实例弹窗后自退,跨平台一致(弃用
app_links 的 mac 事件转发不确定性);Windows 启动时幂等注册 HKCU scheme;
前端 cardPrinter.ts 加 launchAgent()(zaxprint://open),开卡抽屉离线时显示
"启动打印助手"按钮,点击唤起后 1s×6 轮询自动上线(biz 前端改动待用户提交)
Phase 5:
- tool/package_macos.sh:构建 → ad-hoc 就地签名(--deep,勿加 --options=runtime:
hardened runtime 库校验会因 ad-hoc 无 Team ID 拒载 framework,实测踩坑)→
hdiutil dmg;实测产出 22MB dmg + 签名后冒烟通过
- windows/installer.iss:Inno Setup 安装包脚本(快捷方式/桌面图标/开机自启
Tasks/zaxprint scheme 注册与卸载清理/HiTi SDK DLL 随 Release 目录打包)
依赖 +url_launcher +shared_preferences;13 测试全过、analyze 零问题。
|
2026-09-21 13:51:42 +08:00 |
|