Ariver
2026-06-04 ae7f204bc3ae724f4b696033c9c324ae85d49c70
Add Mac App Store freeze records for 2.1.28
3 files added
162 ■■■■■ changed files
02-P-NBL/freeze/20260604-mac-app-store-release-freeze.md 58 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/RELEASE_MANIFEST.md 103 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/SHA256SUMS.txt 1 ●●●● patch | view | raw | blame | history
02-P-NBL/freeze/20260604-mac-app-store-release-freeze.md
New file
@@ -0,0 +1,58 @@
# 2026-06-04 Mac App Store 发布冻结
## 冻结结论
- 冻结版本: `2.1.28`
- build: `20260604.0049`
- 分支: `codex/privatevoice-freeze-2.1.25`
- 源码冻结 commit: `9d3d275dca8e8dc442eb04434c8bd0fdad79bc04`
- release tag: `v2.1.28-build20260604.0049`
- release 记录目录: `Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/`
## 已完成
- 版本号和 build 编号已同步到 Go 常量、macOS `Info.plist`、Wails 配置、Windows manifest、前端 package 和关于页兜底版本。
- 已补充 Mac App Store `.pkg` 构建脚本: `privatevoice.src/scripts/build-macappstore-pkg-macos.sh`。
- 已准备 App Store Connect 元数据草稿、隐私问卷建议、审核备注和上传命令: `Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/APP_STORE_CONNECT_SUBMISSION.md`。
- 已生成本地 App Store sandbox POC DMG:
  `Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice Dictation-2.1.28-build20260604.0049-arm64-appstore-sandbox-poc.dmg`。
- SHA256: `fcef2154aab52224f55874ea865d6a08efe71a2d09768d7fbc8858d319a64024`。
## 验证
- `git diff --check`: PASS
- `bash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh`: PASS
- `npm run build`: PASS,只有既有 Svelte a11y warning
- `go test ./... -count=1`: PASS
- `./scripts/build-appstore-macos.sh arm64`: PASS
- App Store sandbox POC DMG `hdiutil verify`: PASS
- DMG 挂载内容包含 `.app` 和 `Applications` 链接: PASS
- 包内版本为 `2.1.28 (build 20260604.0049)`: PASS
- 包内包含 `en.lproj` 和 `zh-Hans.lproj` 本地化资源: PASS
## 等待用户/外部环境
当前正在等待用户提供或安装 Apple 发布环境,原因是本机没有 Mac App Store 上传所需的 Apple 分发证书、Installer 证书和 provisioning profile。
需要用户完成:
1. 在 Apple Developer / App Store Connect 中创建或确认 bundle ID `com.privatevoice.input` 的 macOS App 记录。
2. 安装 App Store app signing identity:
   `Apple Distribution: <Team> (<TeamID>)` 或 `3rd Party Mac Developer Application: <Team> (<TeamID>)`。
3. 安装 Installer signing identity:
   `3rd Party Mac Developer Installer: <Team> (<TeamID>)`。
4. 下载 Mac App Store provisioning profile,并提供本地绝对路径。
5. 提供 App Store Connect 上传方式:Transporter 登录状态,或 altool 使用的 Apple ID / app-specific password。
收到这些信息后,下一步执行:
```bash
cd /Users/ar/Projects/PrivateVoice/privatevoice.src
PRIVATEVOICE_APPSTORE_APP_IDENTITY="Apple Distribution: <Team> (<TeamID>)" \
PRIVATEVOICE_APPSTORE_INSTALLER_IDENTITY="3rd Party Mac Developer Installer: <Team> (<TeamID>)" \
PRIVATEVOICE_APPSTORE_PROVISIONING_PROFILE="/absolute/path/to/profile.provisionprofile" \
  ./scripts/build-macappstore-pkg-macos.sh arm64
```
然后用 `pkgutil --check-signature`、`xcrun altool --validate-app` 或 Transporter 验证并上传生成的 `.pkg`。
Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/RELEASE_MANIFEST.md
New file
@@ -0,0 +1,103 @@
# Release Manifest: PrivateVoice Dictation 2.1.28 build 20260604.0049
## Package Type
- Type: Mac App Store release freeze / local App Store sandbox POC
- Platform: macOS arm64
- Signing: local code signing identity for POC only, not Apple App Store distribution signing
- Generated at: 2026-06-03T16:55:36Z
- Operator: Codex
## Source
- Repository: `/Users/ar/Projects/PrivateVoice`
- Branch: `codex/privatevoice-freeze-2.1.25`
- Commit: `9d3d275dca8e8dc442eb04434c8bd0fdad79bc04`
- Version: `2.1.28`
- Build: `20260604.0049`
- Tag: `v2.1.28-build20260604.0049`
## Scope
- Frozen code for Mac App Store release preparation.
- Updated all app metadata to `2.1.28` and build `20260604.0049`.
- Added Mac App Store `.pkg` build script:
  `privatevoice.src/scripts/build-macappstore-pkg-macos.sh`.
- Prepared App Store Connect metadata, privacy label recommendation, review notes, upload commands, and blocker list:
  `APP_STORE_CONNECT_SUBMISSION.md`.
- Built and verified a local App Store sandbox POC DMG using the `appstore` Go build tag and App Sandbox entitlements.
## Build Commands
```bash
git diff --check
bash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh
npm run build
go test ./... -count=1
./privatevoice.src/scripts/build-macappstore-pkg-macos.sh arm64
./privatevoice.src/scripts/build-appstore-macos.sh arm64
```
## Verification
- Version metadata scan for `2.1.28` and `20260604.0049`: PASS.
- `git diff --check`: PASS.
- `bash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh`: PASS.
- `npm run build`: PASS, with existing Svelte a11y warnings in `UpdateDialog.svelte` and `ToggleSwitch.svelte`.
- `go test ./... -count=1`: PASS.
- Mac App Store `.pkg` script preflight: BLOCKED as expected because Apple signing environment variables and certificates are not available locally.
- App Store sandbox POC build script: PASS.
- App Store sandbox POC app `Info.plist` reports `CFBundleShortVersionString=2.1.28`, `CFBundleVersion=20260604.0049`, and `LSMinimumSystemVersion=13.4`: PASS.
- App Store sandbox POC app resources include `en.lproj/InfoPlist.strings` and `zh-Hans.lproj/InfoPlist.strings`: PASS.
- App Store sandbox POC entitlements include App Sandbox, audio input, user-selected read/write files, and network client: PASS.
- App Store sandbox POC app code signature verification in build script: PASS.
- App Store sandbox POC DMG `hdiutil verify`: PASS.
- DMG contents include `PrivateVoice Dictation.app` and `Applications -> /Applications`: PASS.
- Copied release DMG SHA256 verification: PASS.
## Artifact
```text
Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice Dictation-2.1.28-build20260604.0049-arm64-appstore-sandbox-poc.dmg
```
SHA256:
```text
fcef2154aab52224f55874ea865d6a08efe71a2d09768d7fbc8858d319a64024
```
## Mac App Store Upload Blocker
This machine does not currently have Apple App Store signing assets installed:
- Missing App Store app signing identity:
  `Apple Distribution: <Team> (<TeamID>)` or `3rd Party Mac Developer Application: <Team> (<TeamID>)`.
- Missing installer signing identity:
  `3rd Party Mac Developer Installer: <Team> (<TeamID>)`.
- Missing Mac App Store provisioning profile for bundle ID `com.privatevoice.input`.
- Missing App Store Connect upload credentials or Transporter session.
After those are available, run:
```bash
cd /Users/ar/Projects/PrivateVoice/privatevoice.src
PRIVATEVOICE_APPSTORE_APP_IDENTITY="Apple Distribution: <Team> (<TeamID>)" \
PRIVATEVOICE_APPSTORE_INSTALLER_IDENTITY="3rd Party Mac Developer Installer: <Team> (<TeamID>)" \
PRIVATEVOICE_APPSTORE_PROVISIONING_PROFILE="/absolute/path/to/profile.provisionprofile" \
  ./scripts/build-macappstore-pkg-macos.sh arm64
```
Expected upload package:
```text
/Users/ar/Projects/PrivateVoice/privatevoice.src/build/macappstore/arm64/PrivateVoice-Dictation-2.1.28-build20260604.0049-arm64-macappstore.pkg
```
## Known Notes
- The DMG in this folder is a local sandbox POC for QA and review preparation. It is not a Mac App Store upload package.
- The App Store upload artifact must be a signed `.pkg` produced after Apple signing assets are installed.
- Build logs include existing Svelte accessibility warnings in unrelated components.
- Build logs include the existing macOS deployment warning for `libonnxruntime.1.24.4.dylib`, which is built for macOS 14.0 while the App Store sandbox target remains macOS 13.4.
Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/SHA256SUMS.txt
New file
@@ -0,0 +1 @@
fcef2154aab52224f55874ea865d6a08efe71a2d09768d7fbc8858d319a64024  PrivateVoice Dictation-2.1.28-build20260604.0049-arm64-appstore-sandbox-poc.dmg