修复 PrivateVoice 2.1.28 Mac App Store 审核拒绝问题,重点处理最终 .pkg 中的 com.apple.quarantine、签名 entitlements、build 编号和可复核 QA 证据。
/Users/ar/Projects/PrivateVoice/.worktrees/appstore-2.1.28-launch-hotfix 内继续整改,未改主工作区脏改。privatevoice.src/scripts/verify-macappstore-pkg-macos.sh。privatevoice.src/scripts/build-macappstore-pkg-macos.sh 在每个 .pkg 生成后调用稳定验证脚本。2.1.28 (20260611.1636)。/Users/ar/Projects/PrivateVoice/.worktrees/appstore-2.1.28-launch-hotfix/privatevoice.src/build/macappstore-hotfix-20260611.1636/universal/PrivateVoice-Dictation-2.1.28-build20260611.1636-universal-macappstore.pkg110de4348f52a472a05d9c79fb33b4c713ddc123ee84e1ae99a335804333d7e5。/Applications 的 App 恢复为排查前备份。2.1.28,本轮只递增 build,不改 marketing version。keychain-access-groups 不再写入签名 entitlements。open Mac App Store-signed .app 受本地 Gatekeeper / MAS 环境影响,不作为最终启动验收结论;最终启动结果以 App Store Connect/TestFlight/Apple 审核环境为准。CHANGELOG.mdDocs/KM2.项目管理-非业务直接相关/AppStore审核拒绝-20260610.mdDocs/KM2.项目管理-非业务直接相关/QA工作-经验与教训.mdprivatevoice.src/app.goprivatevoice.src/build/darwin/Info.plistprivatevoice.src/frontend/src/components/settings/AboutPage.svelteprivatevoice.src/scripts/build-macappstore-pkg-macos.shprivatevoice.src/scripts/verify-macappstore-pkg-macos.shbash -n 通过:build-macappstore-pkg-macos.sh、verify-macappstore-pkg-macos.sh。privatevoice.src/scripts/build-macappstore-pkg-macos.sh universal。.pkg 都通过稳定验证脚本。com.apple.quarantine;payload app 签名有效;entitlements 与 profile 匹配;无 keychain-access-groups;ITSAppUsesNonExemptEncryption=false。com.apple.provenance 类系统扩展属性;当前不作为 Apple 明确拒绝项。20260611.1636 universal .pkg 到 App Store Connect 并选择新 build 重新提交审核。open 判断。处理 App Store Connect 上传 20260611.1636 后的新错误:Validation failed (409),Apple 指出 Contents/Frameworks/libonnxruntime.1.24.4.dylib 必须使用 provisioning profile 内包含的证书签名。
20260611.1636 失败原因不是 quarantine,而是签名证书不匹配:失败包使用 app signing certificate 404B695635AF53AAF0A65956B935115BD5A9DD50,profile 的 DeveloperCertificates 只包含 0D7D5484FDE4EC1CA2C9225F1E71E65A256A1E7C。privatevoice.src/scripts/build-macappstore-pkg-macos.sh 增加开工前门禁:PRIVATEVOICE_APPSTORE_APP_IDENTITY 必须属于 profile DeveloperCertificates。privatevoice.src/scripts/verify-macappstore-pkg-macos.sh 增加终包验证:payload app、主可执行和 Frameworks 下 dylib 都必须满足 profile certificate leaf requirement。2.1.28 (20260611.1907)。0D7D5484FDE4EC1CA2C9225F1E71E65A256A1E7C 重建并验证通过。20260611.1636 release 资料标记为 deprecated,不再作为上传指引。20260611.1907 release manifest 和 App Store Connect 上传说明。v2.1.28-build20260611.1907-appstore-hotfix;删除本地旧 tag:v2.1.28-build20260611.1636-appstore-hotfix。CHANGELOG.mdDocs/KM2.项目管理-非业务直接相关/AppStore审核拒绝-20260610.mdDocs/KM2.项目管理-非业务直接相关/QA工作-经验与教训.mdRelease/PrivateVoice-Dictation-2.1.28-build20260611.1636/APP_STORE_CONNECT_SUBMISSION.mdRelease/PrivateVoice-Dictation-2.1.28-build20260611.1636/RELEASE_MANIFEST.mdRelease/PrivateVoice-Dictation-2.1.28-build20260611.1907/APP_STORE_CONNECT_SUBMISSION.mdRelease/PrivateVoice-Dictation-2.1.28-build20260611.1907/RELEASE_MANIFEST.mdRelease/PrivateVoice-Dictation-2.1.28-build20260611.1907/SHA256SUMS.txtprivatevoice.src/app.goprivatevoice.src/build/darwin/Info.plistprivatevoice.src/frontend/src/components/settings/AboutPage.svelteprivatevoice.src/scripts/build-macappstore-pkg-macos.shprivatevoice.src/scripts/verify-macappstore-pkg-macos.shbash -n privatevoice.src/scripts/build-macappstore-pkg-macos.sh: PASS。bash -n privatevoice.src/scripts/verify-macappstore-pkg-macos.sh: PASS。git diff --check: PASS。com.apple.quarantine;entitlements 与 profile 匹配;无 keychain-access-groups;ITSAppUsesNonExemptEncryption=false;payload app、主可执行和 bundled dylibs 均满足 profile 证书要求。/Users/ar/Projects/PrivateVoice/.worktrees/appstore-2.1.28-launch-hotfix/privatevoice.src/build/macappstore-hotfix-20260611.1907/universal/PrivateVoice-Dictation-2.1.28-build20260611.1907-universal-macappstore.pkgf5283fbe25689bfa6b7ead585318072c39acd9f91f87f34bd8053653342da90f。20260611.1907 universal .pkg 到 App Store Connect,等待处理完成后选择 build 20260611.1907 并重新提交审核。20260611.1636。用户指出已连续两次因为 App Store 打包不合格被 Apple 官方驳回,要求形成独立 Markdown 文档,总结经验教训。
Docs/KM2.项目管理-非业务直接相关/AppStore打包连续返工经验教训-20260611.md。ITMS-91109 quarantine 属性、Validation failed (409) 签名证书不在 provisioning profile 内。.pkg 为唯一验收对象,并通过项目稳定脚本验证。verify-macappstore-pkg-macos.sh 或 release checklist。用户要求代为操作 App Store Connect,将已上传的新 build 2.1.28 (20260611.1907) 提交给 Apple 官方继续审核。
2.1.28 (20260605.353),未直接提交。2.1.28 的 Build 区域移除旧 build 20260605.353。2.1.28 (20260611.1907)。Sign-In Required 未勾选。Resubmit to App Review。Waiting for Review。macOS App 2.1.28 / 2.1.28 (20260611.1907)。Jun 12, 2026 at 5:19 PM。