# Taglauncher 8.3.0 验收 DMG ## 用户目标 用户询问“有新的安装包吗?”。确认当时只有新的 `.app`,没有包含最新 UI / ESC 改动的 `.dmg`,因此补生成一个本地验收 DMG。 ## 已完成事项 - 基于当前工作区重新构建 `TagLauncher.app`。 - 使用当前时间生成 bundle build 号:`20260701.2029`。 - 生成本地验收安装包: `/Users/ar/Projects/Taglauncher/src/build/TagLauncher-8.3.0-build20260701.2029.dmg` - 验证 DMG checksum 有效。 - 挂载 DMG 验证其中包含: - `TagLauncher.app` - `Applications -> /Applications` 链接 - 验证 DMG 内 App 元数据: - Version: `8.3.0` - Build: `20260701.2029` ## 关键决策 当前工作区仍有大量未提交改动,因此该 DMG 只能标记为“本地验收候选包”,不能称为正式可回滚发布包或 App Store 发布包。 ## 核心事实 / 变更快照 - 变更对象:本地验收 DMG 构建产物。 - 事实来源:`/Users/ar/Projects/Taglauncher/src/build/TagLauncher-8.3.0-build20260701.2029.dmg` - 变更前:本轮最新 `.app` 已生成,但没有包含最新改动的新 DMG;现有最新 DMG 仍是 `8.2.9`。 - 变更后:生成 `8.3.0 (20260701.2029)` 本地验收 DMG。 - 范围边界:未冻结 commit,未创建 release tag,未生成正式 release manifest,未上传 App Store。 - 验证证据: - `hdiutil verify` PASS。 - `hdiutil attach` 后确认 DMG 内容和 App 版本/build。 ## 文件变更 - 新增构建产物:`/Users/ar/Projects/Taglauncher/src/build/TagLauncher-8.3.0-build20260701.2029.dmg` - 新增会话记录:本文件。 - 更新命令索引:`/Users/ar/Projects/Taglauncher-doc/chat-history/codex-sessionhistory/COMMANDS.md` ## QA / 验证结论 ```text SHA256: c1a2b0da8fd2c1ed7a00e792440085cfe2003830665db48bc2c4da77742b36bb ``` DMG 验证结论: ```text hdiutil: verify: checksum of "build/TagLauncher-8.3.0-build20260701.2029.dmg" is VALID ``` 挂载内容验证: ```text Applications -> /Applications TagLauncher.app 8.3.0 20260701.2029 ``` ## 可复用命令 / Runbook 用途:在当前源码状态下重新生成本地验收 DMG,并验证镜像内容。 前置条件: - 项目路径:`/Users/ar/Projects/Taglauncher/src` - 目标产物:`TagLauncher--build.dmg` - 如果需要正式可回滚发布包,必须先提交源码、冻结 commit、生成 release manifest 和 tag;下面命令只生成本地验收包。 设置 / 构建命令: ```bash cd /Users/ar/Projects/Taglauncher/src BUILD_NO="$(date '+%Y%m%d.%H%M')" APP_BUILD="$BUILD_NO" bash build.sh bash make_dmg.sh VERSION="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' build/TagLauncher.app/Contents/Info.plist)" BUNDLE_BUILD="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' build/TagLauncher.app/Contents/Info.plist)" DMG="build/TagLauncher-${VERSION}-build${BUNDLE_BUILD}.dmg" mv -f build/TagLauncher.dmg "$DMG" shasum -a 256 "$DMG" ls -lh "$DMG" ``` 验证步骤: ```bash cd /Users/ar/Projects/Taglauncher/src DMG="build/TagLauncher-8.3.0-build20260701.2029.dmg" hdiutil verify "$DMG" MOUNT_DIR="$(mktemp -d /tmp/taglauncher-dmg-verify.XXXXXX)" hdiutil attach "$DMG" -readonly -nobrowse -mountpoint "$MOUNT_DIR" ls -la "$MOUNT_DIR" test -d "$MOUNT_DIR/TagLauncher.app" test -L "$MOUNT_DIR/Applications" /usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "$MOUNT_DIR/TagLauncher.app/Contents/Info.plist" /usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' "$MOUNT_DIR/TagLauncher.app/Contents/Info.plist" hdiutil detach "$MOUNT_DIR" rmdir "$MOUNT_DIR" 2>/dev/null || true ``` 搜索关键词:`TagLauncher-8.3.0-build20260701.2029.dmg`、`hdiutil verify`、`make_dmg.sh`、`APP_BUILD`、`本地验收DMG`、`c1a2b0da8fd2c1ed7a00e792440085cfe2003830665db48bc2c4da77742b36bb` ## 未决问题 - 当前包不是正式冻结包;如果要走上架或可回滚发布流程,需要先处理 dirty 工作区、提交源码、更新 manifest、创建 tag。 - 之前完整 `window_logic_qa.sh` 曾失败在既有 Dock 隐藏场景,和本轮 DMG 生成无直接关系,但正式发布前仍应处理或记录豁免。