From 325436a7009d25024c90c3810bf0611c7709d000 Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Thu, 04 Jun 2026 23:59:30 +0800 Subject: [PATCH] Record App Store category rebuild --- 02-P-NBL/freeze/20260604-mac-app-store-category-hotfix.md | 35 +++++++++++ Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/RELEASE_MANIFEST.md | 69 +++++++++++++++++++++++ Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/SHA256SUMS.txt | 1 Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/APP_STORE_CONNECT_SUBMISSION.md | 34 +++++++++++ 4 files changed, 139 insertions(+), 0 deletions(-) diff --git a/02-P-NBL/freeze/20260604-mac-app-store-category-hotfix.md b/02-P-NBL/freeze/20260604-mac-app-store-category-hotfix.md new file mode 100644 index 0000000..9a2e1ae --- /dev/null +++ b/02-P-NBL/freeze/20260604-mac-app-store-category-hotfix.md @@ -0,0 +1,35 @@ +# 2026-06-04 Mac App Store 分类键修复 + +## 结论 + +- 版本: `2.1.28` +- 新 build: `20260604.2353` +- 源码 commit: `8a3688f69230d8bad0f74a6494847f472902b6ae` +- 修复原因: Transporter validation failed 409, 缺少 `LSApplicationCategoryType`。 +- 修复值: `public.app-category.productivity` + +## 产物 + +- `/Users/ar/Desktop/PrivateVoice-26.0604上架/02-上传包/PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg` +- `/Users/ar/Projects/PrivateVoice/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg` + +SHA256: + +```text +dac575491644952a84f9f8365de845f5639c132b3b1ea57f4cee4df49a3e642b PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg +``` + +## 验证 + +- `go test ./internal/startup ./internal/model ./internal/modelselection`: PASS +- `bash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh`: PASS +- arm64 App Store signed package build: PASS +- x86_64 App Store signed package build: PASS +- universal app merge and re-sign: PASS +- `codesign -vvv --deep --strict` universal app: PASS +- `pkgutil --check-signature` universal pkg: PASS +- 展开 pkg 后读取 `Info.plist`,`LSApplicationCategoryType=public.app-category.productivity`: PASS + +## 上传提示 + +请在 Transporter 中上传 `20260604.2353` 这个新包,不要再上传 `20260604.0049`。 diff --git a/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/APP_STORE_CONNECT_SUBMISSION.md b/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/APP_STORE_CONNECT_SUBMISSION.md new file mode 100644 index 0000000..451bfa5 --- /dev/null +++ b/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/APP_STORE_CONNECT_SUBMISSION.md @@ -0,0 +1,34 @@ +# App Store Connect Submission Prep + +## Build + +- App: 私语输入法 / PrivateVoice Dictation +- Bundle ID: `com.shanghai3168.privatevoicedictation` +- Version: `2.1.28` +- Build: `20260604.2353` +- Platform: macOS +- Primary category: Productivity +- `LSApplicationCategoryType`: `public.app-category.productivity` +- Minimum macOS for App Store sandbox build: `13.4` +- Support URL: `https://shanghai3168.github.io/privatevoice-dictation-support/support.html` +- Privacy Policy URL: `https://shanghai3168.github.io/privatevoice-dictation-support/privacy.html` + +## Current Upload Package + +```text +/Users/ar/Desktop/PrivateVoice-26.0604上架/02-上传包/PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg +``` + +This replaces the failed `20260604.0049` package. The new package contains `LSApplicationCategoryType=public.app-category.productivity` in the bundled app `Info.plist`. + +## Validation Evidence + +- Universal `arm64` + `x86_64` app executable and bundled dylibs: PASS. +- App code signature: PASS. +- Installer package signature: PASS. +- Expanded package `Info.plist` category key: PASS. +- SHA256: `dac575491644952a84f9f8365de845f5639c132b3b1ea57f4cee4df49a3e642b`. + +## Upload + +Open Transporter, drag in the package above, and click `Deliver`. diff --git a/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/RELEASE_MANIFEST.md b/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/RELEASE_MANIFEST.md new file mode 100644 index 0000000..75da5c4 --- /dev/null +++ b/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/RELEASE_MANIFEST.md @@ -0,0 +1,69 @@ +# Release Manifest: PrivateVoice Dictation 2.1.28 build 20260604.2353 + +## 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-04T15:57:00Z +- Operator: Codex + +## Source + +- Repository: `/Users/ar/Projects/PrivateVoice` +- Branch: `codex/privatevoice-freeze-2.1.25` +- Commit: `8a3688f69230d8bad0f74a6494847f472902b6ae` +- Version: `2.1.28` +- Build: `20260604.2353` +- Bundle ID: `com.shanghai3168.privatevoicedictation` +- App Store category UTI: `public.app-category.productivity` + +## Scope + +- Fixed App Store validation failure 409 caused by missing `LSApplicationCategoryType` in the app `Info.plist`. +- Added `LSApplicationCategoryType=public.app-category.productivity`. +- Rebuilt the Mac App Store upload package with a new build number. + +## Build Commands + +```bash +git diff --check -- privatevoice.src/build/darwin/Info.plist privatevoice.src/app.go +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 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 `LSApplicationCategoryType=public.app-category.productivity`: PASS. +- Release and desktop package SHA256 match: PASS. + +## Artifact + +```text +Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg +/Users/ar/Desktop/PrivateVoice-26.0604上架/02-上传包/PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg +``` + +SHA256: + +```text +dac575491644952a84f9f8365de845f5639c132b3b1ea57f4cee4df49a3e642b PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg +``` + +## Upload Note + +Use the `20260604.2353` package for Transporter. Do not upload the previous `20260604.0049` package, because it is missing `LSApplicationCategoryType`. diff --git a/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/SHA256SUMS.txt b/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/SHA256SUMS.txt new file mode 100644 index 0000000..a64f0aa --- /dev/null +++ b/Release/PrivateVoice-Dictation-2.1.28-build20260604.2353/SHA256SUMS.txt @@ -0,0 +1 @@ +dac575491644952a84f9f8365de845f5639c132b3b1ea57f4cee4df49a3e642b PrivateVoice-Dictation-2.1.28-build20260604.2353-universal-macappstore.pkg -- Gitblit v1.9.3