| | |
| | | |
| | | ## Package Type |
| | | |
| | | - Type: Mac App Store release freeze / local App Store sandbox POC |
| | | - Platform: macOS arm64 and x86_64 |
| | | - Signing: local code signing identity for POC only, not Apple App Store distribution signing |
| | | - Generated at: 2026-06-03T16:55:36Z |
| | | - Type: Mac App Store signed universal upload package |
| | | - Platform: macOS universal, `arm64` + `x86_64` |
| | | - Signing: Apple App Store distribution signing with embedded Mac App Store provisioning profile |
| | | - Initial freeze generated at: 2026-06-03T16:55:36Z |
| | | - Signed upload package generated at: 2026-06-04T15:29:26Z |
| | | - Operator: Codex |
| | | |
| | | ## Source |
| | | |
| | | - Repository: `/Users/ar/Projects/PrivateVoice` |
| | | - Branch: `codex/privatevoice-freeze-2.1.25` |
| | | - Commit: `9d3d275dca8e8dc442eb04434c8bd0fdad79bc04` |
| | | - Original release freeze commit: `9d3d275dca8e8dc442eb04434c8bd0fdad79bc04` |
| | | - App Store upload source commit: `3fecf01a4c6c8e84dff785945644ad6c01c6db40` |
| | | - Version: `2.1.28` |
| | | - Build: `20260604.0049` |
| | | - Tag: `v2.1.28-build20260604.0049` |
| | | - Original release tag: `v2.1.28-build20260604.0049` |
| | | - App Store upload freeze tag: `v2.1.28-build20260604.0049-appstore-upload` |
| | | |
| | | ## Scope |
| | | |
| | | - Frozen code for Mac App Store release preparation. |
| | | - Frozen code for Mac App Store release preparation and final App Store upload. |
| | | - Updated all app metadata to `2.1.28` and build `20260604.0049`. |
| | | - Updated the app bundle identifier to the App Store provisioning profile bundle ID: |
| | | `com.shanghai3168.privatevoicedictation`. |
| | | - Added Mac App Store `.pkg` build script: |
| | | `privatevoice.src/scripts/build-macappstore-pkg-macos.sh`. |
| | | - Added provisioning-profile bundle ID preflight validation to the Mac App Store `.pkg` build script. |
| | | - Prepared App Store Connect metadata, privacy label recommendation, review notes, upload commands, and blocker list: |
| | | `APP_STORE_CONNECT_SUBMISSION.md`. |
| | | - Built and verified local App Store sandbox POC DMGs for arm64 and x86_64 using the `appstore` Go build tag and App Sandbox entitlements. |
| | | - Built and verified signed universal Mac App Store upload `.pkg`. |
| | | |
| | | ## Build Commands |
| | | |
| | |
| | | git diff --check |
| | | bash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh |
| | | npm run build |
| | | go test ./... -count=1 |
| | | go test ./internal/startup ./internal/model ./internal/modelselection |
| | | ./privatevoice.src/scripts/build-macappstore-pkg-macos.sh arm64 |
| | | ./privatevoice.src/scripts/build-appstore-macos.sh arm64 |
| | | ./privatevoice.src/scripts/build-appstore-macos.sh x86_64 |
| | |
| | | - `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. |
| | | - Mac App Store signing identities installed in Keychain: PASS. |
| | | - Apple WWDR G3 intermediate certificate installed and signing identities valid: PASS. |
| | | - Mac App Store provisioning profile bundle ID matches `com.shanghai3168.privatevoicedictation`: PASS. |
| | | - Signed universal Mac App Store `.pkg` built: PASS. |
| | | - Signed app `codesign -vvv --deep --strict`: PASS. |
| | | - Signed package `pkgutil --check-signature`: PASS. |
| | | - Universal app executable contains `arm64` and `x86_64`: PASS. |
| | | - Bundled `libsherpa-onnx-c-api.dylib` contains `arm64` and `x86_64`: PASS. |
| | | - Bundled `libonnxruntime.1.24.4.dylib` contains `arm64` and `x86_64`: PASS. |
| | | - App Store sandbox POC build script for arm64: PASS. |
| | | - App Store sandbox POC build script for x86_64: PASS. |
| | | - App Store sandbox POC app `Info.plist` reports `CFBundleShortVersionString=2.1.28`, `CFBundleVersion=20260604.0049`, and `LSMinimumSystemVersion=13.4` for both arm64 and x86_64: PASS. |
| | |
| | | ```text |
| | | Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice Dictation-2.1.28-build20260604.0049-arm64-appstore-sandbox-poc.dmg |
| | | Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice Dictation-2.1.28-build20260604.0049-x86_64-appstore-sandbox-poc.dmg |
| | | Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg |
| | | ``` |
| | | |
| | | SHA256: |
| | |
| | | ```text |
| | | fcef2154aab52224f55874ea865d6a08efe71a2d09768d7fbc8858d319a64024 PrivateVoice Dictation-2.1.28-build20260604.0049-arm64-appstore-sandbox-poc.dmg |
| | | 899bf95f579455794f9cffbadc33d1e90dbba4b6fc1b3d237229115691373606 PrivateVoice Dictation-2.1.28-build20260604.0049-x86_64-appstore-sandbox-poc.dmg |
| | | 84dc2bc2f6b38762e6f72f152603f831d2a3e515ca772c0b8f5e11dabedbb579 PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg |
| | | ``` |
| | | |
| | | ## Mac App Store Upload Blocker |
| | | ## Mac App Store Upload Package |
| | | |
| | | This machine does not currently have Apple App Store signing assets installed: |
| | | Signed universal upload package: |
| | | |
| | | - 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. |
| | | - `/Users/ar/Projects/PrivateVoice/Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg` |
| | | - `/Users/ar/Desktop/PrivateVoice-26.0604上架/02-上传包/PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg` |
| | | |
| | | After those are available, run: |
| | | The app executable and bundled sherpa/onnxruntime dylibs are universal `arm64` + `x86_64`. The package signature verifies with `3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)`. |
| | | |
| | | ```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 |
| | | /Users/ar/Projects/PrivateVoice/privatevoice.src/build/macappstore/x86_64/PrivateVoice-Dictation-2.1.28-build20260604.0049-x86_64-macappstore.pkg |
| | | ``` |
| | | Remaining external upload requirement: App Store Connect upload credentials or an active Transporter session. |
| | | |
| | | ## 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. |
| | | - The DMGs in this folder are local sandbox POC artifacts for QA and review preparation. They are not Mac App Store upload packages. |
| | | - The App Store upload artifact is the signed universal `.pkg` listed above. |
| | | - 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. |