# 2026-06-14 AppStore 启动整改 ## 用户目标 在开发者完成剪贴板上屏 hotfix 后,继续修复 App Store 审核被拒问题,生成新的 Mac App Store 上传包,并避免再次因为签名、包体或无法启动被拒。 ## 已完成事项 - 接入开发者 hotfix 分支:`codex/appstore-2.1.28-paste-safety-hotfix`。 - 版本保持 `2.1.28`,新 build 使用 `20260614.0102`。 - 修复 Mac App Store 打包链路: - 继续移除 `keychain-access-groups`,避免 provisioning profile 的 wildcard group 被写入签名 entitlements。 - 打包后验证最终 `.pkg` payload,而不是只验证构建目录里的 `.app`。 - 验证 quarantine、AppleDouble/Finder metadata、签名、entitlements、证书/profile 匹配、Info.plist、Mach-O load path 和最低系统版本。 - 修复 App Store sandbox 启动问题: - 确认 Wails `SingleInstance` 在 App Sandbox 下会触发 `NSDistributedNotificationCenter` 被拒,导致 appstore-tag 构建不能进入 `ApplicationStarted`。 - App Store 构建禁用 Wails `SingleInstance`;非 App Store 构建保持原单实例逻辑。 - 修复 QA 脚本: - `qa-macappstore-pkg-launch-macos.sh` 不再直接运行 production-signed payload,因为本机 AMFI 会拒绝 Mac App Store distribution profile。 - 新流程从最终 `.pkg` 展开 payload,复制一份本地重签名 launch mirror,仅用于本地启动验证;最终上传包不被修改。 - 启动前清理同名旧进程,避免 Wails SingleInstance/旧实例干扰。 - 生成并归档最终包: - 目录:`/Users/ar/Projects/PrivateVoice/Release/AppStore-2.1.28-20260614.0102-launchfix/` - 包:`PrivateVoice-Dictation-2.1.28-build20260614.0102-universal-macappstore.pkg` - SHA256:`ad06d45ef92e982bfdda52c78f042b29e0af6ec39f254f565ef09768e63a7b16` - 创建本地 tag:`v2.1.28-build20260614.0102-appstore-launchfix`。 ## 关键验证结论 - `build-macappstore-pkg-macos.sh universal`:PASS。 - `verify-macappstore-pkg-macos.sh` 独立验证:PASS。 - `qa-macappstore-pkg-launch-macos.sh` 启动 smoke:PASS,强制等待 `Wails application started`。 - `go test ./...`:PASS。 - `go test -tags appstore ./...`:PASS。 - 两个只读审核员复核后发现的问题已处理:启动 smoke 硬断言不足、0102 release 资料缺口。 - 最终源码 commit:`f620c43cfa290154bc0c4b610708963a6d277ba3`。 ## 关键决策 - 不复用旧 build:`20260611.1907`、`20260613.2139` 或更早 build 不再提交。 - 本轮不碰 X-ASR 实验分支,不把 release 归档提交进当前主项目的 X-ASR 分支。 - App Store production `.pkg` 不适合在本机直接执行 payload 判断启动;本机启动测试必须使用最终 payload 的本地重签名 mirror。 ## 未决问题 - 需要上传新包到 App Store Connect 后等待 Apple 处理,确认新 build `2.1.28 (20260614.0102)` 可选择。 - Release 归档目录在项目根目录中仍是未追踪文件,没有提交到当前 X-ASR 分支。 - 本地 tag 尚未推送远端。 ## 后续建议 - App Store Connect 选择 build `2.1.28 (20260614.0102)`。 - 审核备注说明:完全离线、不需要登录、不上传语音或文本;本 build 修复 macOS App Store sandbox 下启动问题。 - 上传后如再收到 Apple 邮件,先读取完整错误,不要重复提交同一 build。