| | |
| | | ## Build |
| | | |
| | | - App: 私语输入法 / PrivateVoice Dictation |
| | | - Bundle ID: `com.privatevoice.input` |
| | | - Bundle ID: `com.shanghai3168.privatevoicedictation` |
| | | - Version: `2.1.28` |
| | | - Build: `20260604.0049` |
| | | - Platform: macOS |
| | |
| | | - Upload tool: `xcrun altool 26.10.1` |
| | | - App Store sandbox entitlements file: `privatevoice.src/build/darwin/entitlements-appstore.plist` |
| | | - Mac App Store package script: `privatevoice.src/scripts/build-macappstore-pkg-macos.sh` |
| | | - Local blocker: this machine does not currently have Apple App Store distribution or installer identities installed. |
| | | - Apple App Store app and installer signing identities are installed. |
| | | - Mac App Store provisioning profile is installed for `com.shanghai3168.privatevoicedictation`. |
| | | - Local upload blocker remaining: App Store Connect upload credentials or an active Transporter session. |
| | | |
| | | ## Required Apple Account Items |
| | | |
| | | 1. App Store Connect app record for bundle ID `com.privatevoice.input`. |
| | | 2. Mac App Store provisioning profile for `com.privatevoice.input`. |
| | | 1. App Store Connect app record for bundle ID `com.shanghai3168.privatevoicedictation`. |
| | | 2. Mac App Store provisioning profile for `com.shanghai3168.privatevoicedictation`. |
| | | 3. App signing certificate installed in Keychain: |
| | | - `Apple Distribution: <Team> (<TeamID>)`, or |
| | | - legacy `3rd Party Mac Developer Application: <Team> (<TeamID>)`. |
| | |
| | | |
| | | ## Build Upload Package |
| | | |
| | | After the Apple certificates and provisioning profile are installed: |
| | | |
| | | ```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 package path: |
| | | Current signed 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 |
| | | /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 |
| | | ``` |
| | | |
| | | For Intel Mac coverage, run the same command with `x86_64` after Apple signing assets are installed. If App Store Connect requires a single upload covering both CPU families, build a universal package from the same frozen source commit instead of uploading only the arm64 package. |
| | | The package contains universal `arm64` and `x86_64` binaries for the app executable, `libsherpa-onnx-c-api.dylib`, and `libonnxruntime.1.24.4.dylib`. |
| | | |
| | | Validate before upload: |
| | | |
| | | ```bash |
| | | pkgutil --check-signature "/Users/ar/Projects/PrivateVoice/privatevoice.src/build/macappstore/arm64/PrivateVoice-Dictation-2.1.28-build20260604.0049-arm64-macappstore.pkg" |
| | | pkgutil --check-signature "/Users/ar/Projects/PrivateVoice/Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg" |
| | | xcrun altool --validate-app \ |
| | | -f "/Users/ar/Projects/PrivateVoice/privatevoice.src/build/macappstore/arm64/PrivateVoice-Dictation-2.1.28-build20260604.0049-arm64-macappstore.pkg" \ |
| | | -f "/Users/ar/Projects/PrivateVoice/Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg" \ |
| | | -t macos \ |
| | | -u "<apple-id>" \ |
| | | -p "<app-specific-password>" |
| | |
| | | |
| | | ```bash |
| | | xcrun altool --upload-app \ |
| | | -f "/Users/ar/Projects/PrivateVoice/privatevoice.src/build/macappstore/arm64/PrivateVoice-Dictation-2.1.28-build20260604.0049-arm64-macappstore.pkg" \ |
| | | -f "/Users/ar/Projects/PrivateVoice/Release/PrivateVoice-Dictation-2.1.28-build20260604.0049/PrivateVoice-Dictation-2.1.28-build20260604.0049-universal-macappstore.pkg" \ |
| | | -t macos \ |
| | | -u "<apple-id>" \ |
| | | -p "<app-specific-password>" |