# Release Manifest: PrivateVoice Dictation 2.1.28 build 20260605.0236 ## Package Type - 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 - Generated at: 2026-06-04T18:42:19Z - Operator: Codex ## Source - Repository: `/Users/ar/Projects/PrivateVoice` - Branch: `codex/privatevoice-freeze-2.1.25` - Build source commit: `8cd205ee7e12a2b46d6beff6e5a6434c4862af24` - Version: `2.1.28` - Build: `20260605.0236` - Bundle ID: `com.shanghai3168.privatevoicedictation` - App Store category UTI: `public.app-category.productivity` ## Scope - Fixed Transporter/TestFlight validation failure 91109. - The downloaded provisioning profile carried `com.apple.quarantine`, which was copied into the app bundle and then into the package. - Updated `privatevoice.src/scripts/build-macappstore-pkg-macos.sh` to recursively clear extended attributes from the app bundle before and after signing. - Added build-time assertion that no `com.apple.quarantine` attributes remain before packaging. - Rebuilt the Mac App Store upload package with a new build number. ## Build Commands ```bash git diff --check -- privatevoice.src/scripts/build-macappstore-pkg-macos.sh privatevoice.src/app.go privatevoice.src/build/darwin/Info.plist bash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh go test ./internal/startup ./internal/model ./internal/modelselection ./privatevoice.src/scripts/build-macappstore-pkg-macos.sh arm64 ./privatevoice.src/scripts/build-macappstore-pkg-macos.sh x86_64 ``` The final universal app was assembled from the signed arm64 and x86_64 app bundles with `lipo`, then re-signed with the merged App Store entitlements, stripped of extended attributes, and packaged with `productbuild`. ## Verification - `go test ./internal/startup ./internal/model ./internal/modelselection`: 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`. - arm64 Mac App Store package build and signature verification: PASS. - x86_64 Mac App Store package build and signature verification: 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. - Universal app `codesign -vvv --deep --strict`: PASS. - Universal package `pkgutil --check-signature`: PASS. - Expanded package app `Info.plist` contains `CFBundleVersion=20260605.0236`: PASS. - Expanded package app `Info.plist` contains `LSApplicationCategoryType=public.app-category.productivity`: PASS. - Expanded package app signed entitlements contain `com.apple.application-identifier=CR3J54M8BQ.com.shanghai3168.privatevoicedictation`: PASS. - Expanded package app signed entitlements contain `com.apple.developer.team-identifier=CR3J54M8BQ`: PASS. - Expanded package app signed entitlements contain `com.apple.security.app-sandbox=true`: PASS. - Expanded package app contains no `com.apple.quarantine` extended attribute: PASS. - Release, desktop, and operations package SHA256 match: PASS. ## Artifact ```text Release/PrivateVoice-Dictation-2.1.28-build20260605.0236/PrivateVoice-Dictation-2.1.28-build20260605.0236-universal-macappstore.pkg /Users/ar/Desktop/PrivateVoice-26.0604上架/02-上传包/PrivateVoice-Dictation-2.1.28-build20260605.0236-universal-macappstore.pkg /Users/ar/Projects/PrivateVoice/X-运营资料/PrivateVoice-26.0604上架/02-上传包/PrivateVoice-Dictation-2.1.28-build20260605.0236-universal-macappstore.pkg ``` SHA256: ```text a0d01edf950ea69892b14c0f9cd989fc31d6927be4b26d31a4168526fdddd190 PrivateVoice-Dictation-2.1.28-build20260605.0236-universal-macappstore.pkg ``` ## Upload Note Use the `20260605.0236` package for Transporter. Do not upload the previous `20260605.0216` package, because it contains `com.apple.quarantine` extended attributes inside the app payload.