edit | blame | history | raw

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.190720260613.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。