| | |
| | | # Example: "3rd Party Mac Developer Installer: Example Team (TEAMID)" |
| | | # |
| | | # PRIVATEVOICE_APPSTORE_PROVISIONING_PROFILE |
| | | # Path to the Mac App Store provisioning profile for com.privatevoice.input. |
| | | # Path to the Mac App Store provisioning profile for com.shanghai3168.privatevoicedictation. |
| | | # |
| | | # Optional environment: |
| | | # PRIVATEVOICE_SIGNING_KEYCHAIN |
| | |
| | | |
| | | VERSION="$(defaults read "$INFO_PLIST" CFBundleShortVersionString 2>/dev/null || echo "2.1.0")" |
| | | BUILD_ID="$(defaults read "$INFO_PLIST" CFBundleVersion 2>/dev/null || date +%Y%m%d.%H%M)" |
| | | BUNDLE_ID="$(defaults read "$INFO_PLIST" CFBundleIdentifier 2>/dev/null || echo "")" |
| | | |
| | | step() { |
| | | echo "" |
| | |
| | | [[ -n "$APPSTORE_PROVISIONING_PROFILE" ]] || fail "PRIVATEVOICE_APPSTORE_PROVISIONING_PROFILE is required" |
| | | [[ -f "$APPSTORE_PROVISIONING_PROFILE" ]] || fail "Provisioning profile not found: $APPSTORE_PROVISIONING_PROFILE" |
| | | [[ -f "$INFO_PLIST" ]] || fail "Info.plist not found at $INFO_PLIST" |
| | | [[ -n "$BUNDLE_ID" ]] || fail "CFBundleIdentifier is missing from $INFO_PLIST" |
| | | [[ -f "$ENTITLEMENTS" ]] || fail "App Store entitlements not found at $ENTITLEMENTS" |
| | | [[ -f "$PROJECT_DIR/build/darwin/icon.icns" ]] || fail "icon.icns not found" |
| | | [[ -d "$SHERPA_LIB_DIR" ]] || fail "sherpa-onnx dylibs not found at $SHERPA_LIB_DIR" |
| | |
| | | command -v productbuild >/dev/null || fail "productbuild not found" |
| | | command -v pkgutil >/dev/null || fail "pkgutil not found" |
| | | |
| | | PROFILE_PLIST="$(mktemp)" |
| | | trap 'rm -f "$PROFILE_PLIST"' EXIT |
| | | security cms -D -i "$APPSTORE_PROVISIONING_PROFILE" >"$PROFILE_PLIST" || |
| | | fail "Unable to decode provisioning profile: $APPSTORE_PROVISIONING_PROFILE" |
| | | PROFILE_APP_IDENTIFIER="$(/usr/libexec/PlistBuddy -c "Print :Entitlements:com.apple.application-identifier" "$PROFILE_PLIST" 2>/dev/null || true)" |
| | | PROFILE_BUNDLE_ID="${PROFILE_APP_IDENTIFIER#*.}" |
| | | [[ "$PROFILE_BUNDLE_ID" == "$BUNDLE_ID" ]] || |
| | | fail "Provisioning profile bundle ID mismatch: profile has $PROFILE_BUNDLE_ID, app has $BUNDLE_ID" |
| | | |
| | | step "Cleaning old Mac App Store build" |
| | | rm -rf "$BUILD_DIR" |
| | | mkdir -p "$BUILD_DIR" |