# MD-EDC-02 恢复执行后 codesign 阻塞 日期:2026-07-07 项目:Mindraw 任务:`MD-EDC-02` / `P-20260707-signed-notarized-dmg` 角色:Coder@mindraw ## 用户目标 PMO 续派 `MD-EDC-02`,要求在 Owner 恢复本机 notary credential profile 后,从固定 worktree `/private/tmp/mindraw-md-edc-02-signed-notarized-20260707`、固定 source commit `583d507f679866f670b4fec82f1e631d4a9dbf54` 继续生成 `1.2.4 / Build202607071930` macOS Apple Silicon Developer ID signed / notarized / stapled DMG,并补齐 artifact 自查证据。 ## 已完成事项 - 按项目入口继续执行,确认固定 worktree 仍在 branch `codex/md-edc-02-signed-notarized`,HEAD 为 `583d507f679866f670b4fec82f1e631d4a9dbf54`,工作区无新增 source/config/script 改动。 - 使用 `/tmp/mindraw-notary-profile.env` 作为本机 shell 内 profile 来源,仅做静默验证,未输出或写入 profile alias、Apple ID、password、API key、私钥、`.p12` 或 Keychain secret。 - 静默验证 `xcrun notarytool history --keychain-profile "$PROFILE"` 可用;Developer ID Application identity 可见。 - 使用 fresh `CARGO_TARGET_DIR=/tmp/mindraw-md-edc-02-package-target-202607071930` 运行 `npm run package:mindraw`;前端 build、Rust release 编译和 Tauri App bundle 生成已推进到 App signing 阶段。 - 发现 App `codesign --force --deep --sign ... --timestamp --options runtime` 长时间无进展,疑似等待 Keychain 私钥授权或 timestamp 签名访问;中断后 package 退出码为 `130`。 - 更新过程证据: - `02-P/MEXP15-SignedNotarizedDMG/qa/md-edc-02-signed-notarized-dmg-check-20260707.md` - `02-P/MEXP15-SignedNotarizedDMG/qa/md-edc-02-signed-notarized-dmg-check-20260707.json` - `02-P/MEXP15-SignedNotarizedDMG/review/md-edc-02-review-request-crg-583d507f679.md` - `02-P/plan-progress.markdown` ## 关键决策 - 不修改 source/config/script,因此不创建新的 Review Gate;`crg-583d507f679` 仍只表示 source diff / blocker 记录已通过复核,不覆盖 artifact。 - 不从当前 dirty 主工作区打包,继续以 `/private/tmp/mindraw-md-edc-02-signed-notarized-20260707` 为唯一 source worktree。 - 不把任何 notary credential、profile alias、Developer ID 私钥材料或 Keychain secret 写入聊天、仓库、manifest、build-info 或会话记录。 - 当前不能回报 artifact-ready,因为没有生成 DMG、manifest、SHA256、notary submission、stapled artifact、`spctl`、`codesign --verify`、`hdiutil verify` 或 release tag。 ## 核心事实 / 变更快照 - 变更对象:`MD-EDC-02` artifact 状态。 - 事实来源: - 固定 source commit:`583d507f679866f670b4fec82f1e631d4a9dbf54` - fixed worktree:`/private/tmp/mindraw-md-edc-02-signed-notarized-20260707` - 自查 Markdown / JSON:`02-P/MEXP15-SignedNotarizedDMG/qa/md-edc-02-signed-notarized-dmg-check-20260707.md` / `.json` - review request:`02-P/MEXP15-SignedNotarizedDMG/review/md-edc-02-review-request-crg-583d507f679.md` - 主台账:`02-P/plan-progress.markdown` - 变更前:notary credential profile 已由 Owner 恢复,PMO 静默验证可用,任务恢复为 active,等待 coder 生成 artifact。 - 变更后:notary profile 访问可用,但 package 阻塞在 App `codesign --timestamp --options runtime`,疑似等待 Keychain 私钥授权或 timestamp 签名访问。 - 范围边界:没有 source/config/script 新改动;没有 DMG artifact;没有 notarization submission;没有 stapled artifact;没有正式候选可供后续安装复核。 - 验证证据:`notarytool history` 静默通过;Developer ID Application identity 可见;`npm run package:mindraw` 推进到 Tauri App signing 阶段后长时间无进展并被中断,退出码 `130`;`03-O/C2.builds/releases/Build202607071930/` 不存在。 ## 可复用命令 / Runbook 用途:在 PMO / Owner 处理 Developer ID 私钥授权后,从同一固定 source commit 恢复 `MD-EDC-02` packaging。命令不得使用 `set -x`,不得打印 profile alias 或任何凭据。 前置条件: - 当前目录为 `/private/tmp/mindraw-md-edc-02-signed-notarized-20260707`。 - `git rev-parse HEAD` 必须为 `583d507f679866f670b4fec82f1e631d4a9dbf54`。 - `/tmp/mindraw-notary-profile.env` 存在,且仅在 shell 内 source。 - Developer ID Application identity 可由 Keychain 访问;如 Keychain 弹出私钥访问提示,需 Owner 在本机确认。 设置 / 执行命令: ```bash cd /private/tmp/mindraw-md-edc-02-signed-notarized-20260707 git status --short --branch git rev-parse HEAD set -euo pipefail set +x source /tmp/mindraw-notary-profile.env PROFILE="${MINDRAW_NOTARY_PROFILE:-${NOTARY_PROFILE:-${NOTARYTOOL_KEYCHAIN_PROFILE:-}}}" test -n "$PROFILE" IDENTITY="$(security find-identity -v -p codesigning | awk '/Developer ID Application/ {print $2; found=1; exit} END {if (!found) exit 1}')" BUILD_ID=202607071930 \ MINDRAW_BUILD_AGENT=coder@mindraw \ MINDRAW_RELEASE_CLASS=mexp15-signed-notarized-dmg \ MINDRAW_SIGNING_IDENTITY="$IDENTITY" \ MINDRAW_NOTARY_PROFILE="$PROFILE" \ CARGO_TARGET_DIR=/tmp/mindraw-md-edc-02-package-target-202607071930 \ npm run package:mindraw ``` 验证步骤: ```bash test -d /Users/ar/Projects/Mindraw/03-O/C2.builds/releases/Build202607071930 find /Users/ar/Projects/Mindraw/03-O/C2.builds/releases/Build202607071930 -maxdepth 1 -type f -print shasum -a 256 /Users/ar/Projects/Mindraw/03-O/C2.builds/releases/Build202607071930/*.dmg hdiutil verify /Users/ar/Projects/Mindraw/03-O/C2.builds/releases/Build202607071930/*.dmg ``` 清理 / 恢复: - 如果 package 再次阻塞,先不要改 source;检查是否存在 Keychain 私钥授权提示或本机安全策略阻断。 - 不删除旧 build 或既有用户成功证据。 - 不把 `/tmp/mindraw-notary-profile.env` 内容写入任何日志、聊天或仓库文件。 搜索关键词:`MD-EDC-02`、`CODESIGN_PRIVATE_KEY_AUTHORIZATION_WAIT`、`Build202607071930`、`crg-583d507f679`、`mexp15-signed-notarized-dmg`、`codesign --timestamp --options runtime` ## 未决问题 - PMO / Owner 需要处理当前 shell 下 Developer ID private key 授权,或安全调整 Keychain 私钥访问 / partition list。 - 处理后仍需重新运行 packaging,并补齐 DMG、manifest、SHA256、notary submission、staple validate、`spctl` App/DMG assessment、`codesign --verify --deep --strict`、`hdiutil verify`、mounted App metadata。 - Artifact 产生后,`crg-583d507f679` 不能自动代表 artifact 通过;仍需进入后续 artifact 复核和安装路径验证。 ## 后续建议 - PMO / Owner 在本机完成私钥授权处理后,续派 coder 从同一 fixed source commit 重试。 - 若重试仍卡在 `codesign`,优先记录 `codesign` 具体 stderr / GUI 授权状态,但继续避免输出任何 secret。