edit | blame | history | raw

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 / 验证结论

SHA256:
c1a2b0da8fd2c1ed7a00e792440085cfe2003830665db48bc2c4da77742b36bb

DMG 验证结论:

hdiutil: verify: checksum of "build/TagLauncher-8.3.0-build20260701.2029.dmg" is VALID

挂载内容验证:

Applications -> /Applications
TagLauncher.app
8.3.0
20260701.2029

可复用命令 / Runbook

用途:在当前源码状态下重新生成本地验收 DMG,并验证镜像内容。

前置条件:

  • 项目路径:/Users/ar/Projects/Taglauncher/src
  • 目标产物:TagLauncher-<version>-build<build>.dmg
  • 如果需要正式可回滚发布包,必须先提交源码、冻结 commit、生成 release manifest 和 tag;下面命令只生成本地验收包。

设置 / 构建命令:

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"

验证步骤:

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.dmghdiutil verifymake_dmg.shAPP_BUILD本地验收DMGc1a2b0da8fd2c1ed7a00e792440085cfe2003830665db48bc2c4da77742b36bb

未决问题

  • 当前包不是正式冻结包;如果要走上架或可回滚发布流程,需要先处理 dirty 工作区、提交源码、更新 manifest、创建 tag。
  • 之前完整 window_logic_qa.sh 曾失败在既有 Dock 隐藏场景,和本轮 DMG 生成无直接关系,但正式发布前仍应处理或记录豁免。