亮点与主要变更
本版本补齐 macOS 端 Claude Desktop 4.29+ 的 ion-dist.asar 支持,macOS 用户现在可以在 4.29.0 上正常安装中文补丁;Windows 侧 4.29 支持已在 1.4.18 提供。
1. macOS 支持 Claude Desktop 4.29+ ion-dist.asar(合入 #221,修复 #219)
问题背景:Claude Desktop 4.29 起 macOS 前端也由 Contents/Resources/ion-dist/ 目录改为单文件 ion-dist.asar(实测 4.29.0 约 182 MB)。旧版 macOS 补丁脚本只识别目录布局,安装时直接报 Cannot find frontend JS bundle。
修复内容:
- 纯 Python ASAR 读写:解包、按 Electron 格式重打包(含 per-file integrity、unpacked 处理、路径穿越/边界校验),不引入任何第三方依赖;
- 自动适配两种布局:
- 4.29+(ASAR 模式):备份原包 → 解包到临时
ion-dist→ 复用现有全部汉化流程 → 重打包并校验结构 → 替换原包; - 4.29 之前(目录模式):原有逻辑完全不变;
- 4.29+(ASAR 模式):备份原包 → 解包到临时
- Info.plist 完整性同步:重打包后更新
ElectronAsarIntegrity中Resources/ion-dist.asar的头哈希; - Electron 44 字典摘要同步(关键):Electron 44 会用 Electron Framework 二进制中编译期嵌入的摘要校验整个
ElectronAsarIntegrity字典。仅改 plist 哈希会导致应用启动即 FATAL(Failed to get integrity for validatable asar archive)。补丁会同步更新__DATA_CONST,__asar_integrity段的摘要槽位(x86_64 / arm64 两个切片); - 备份与卸载恢复:安装前整包备份,卸载时恢复官方原包。
验证:
- 真实 4.29.0
ion-dist.asar(4,532 条目)无损往返:header 字符串与哈希与原包完全一致,条目内容 0 差异; - 真机安装 4.29.0 后
codesign --verify --deep --strict通过,Info.plist 双哈希与 Framework 摘要均一致,应用启动无完整性错误; - 新增 7 项 ASAR 回归测试,全部 23 项测试通过。
兼容性提示:
macOS 4.29+ 需要修改 Electron Framework 二进制并 ad-hoc 重签名,官方签名会失效(与 Windows 改
Claude.exe哈希同性质)。安装器会整包备份,卸载时自动恢复官方原包。
验证与测试
- Python 回归测试 23 项全部 PASS(Ubuntu / Windows CI);
git diff --check无格式问题;- 已在 macOS 4.29.0 真机完成安装与启动验证。