From 137a07cf4ea06dee0ce531b55e6b594979338812 Mon Sep 17 00:00:00 2001 From: Nexmoe <16796652+nexmoe@users.noreply.github.com> Date: Mon, 12 Jan 2026 09:58:44 +0800 Subject: [PATCH] chore(build): enhance macOS signing and notarization process - Updated electron-builder configuration to enable hardened runtime and notarization for macOS builds. - Added a new GitHub Actions step to set up macOS signing with necessary certificates and keys. --- .github/workflows/build.yml | 31 +++++++++++++++++++++++++++++++ electron-builder.yml | 5 +++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c38a3ba..2558ed5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -127,6 +127,37 @@ jobs: - name: Lint and format check run: pnpm run check && pnpm run typecheck + - name: Setup macOS signing + if: matrix.platform == 'macos' + shell: bash + env: + MAC_CERT_P12_BASE64: ${{ secrets.MAC_CERT_P12_BASE64 }} + MAC_CERT_P12_PASSWORD: ${{ secrets.MAC_CERT_P12_PASSWORD }} + APPLE_API_KEY_P8_BASE64: ${{ secrets.APPLE_API_KEY_P8_BASE64 }} + APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} + APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} + run: | + set -euo pipefail + CERT_PATH="$RUNNER_TEMP/mac_cert.p12" + KEYCHAIN_PATH="$RUNNER_TEMP/build.keychain" + API_KEY_PATH="$RUNNER_TEMP/AuthKey.p8" + + echo "$MAC_CERT_P12_BASE64" | base64 --decode > "$CERT_PATH" + echo "$APPLE_API_KEY_P8_BASE64" | base64 --decode > "$API_KEY_PATH" + + security create-keychain -p "$MAC_CERT_P12_PASSWORD" "$KEYCHAIN_PATH" + security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH" + security unlock-keychain -p "$MAC_CERT_P12_PASSWORD" "$KEYCHAIN_PATH" + security import "$CERT_PATH" -k "$KEYCHAIN_PATH" -P "$MAC_CERT_P12_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild + security list-keychain -d user -s "$KEYCHAIN_PATH" + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MAC_CERT_P12_PASSWORD" "$KEYCHAIN_PATH" + + echo "CSC_KEYCHAIN=$KEYCHAIN_PATH" >> "$GITHUB_ENV" + echo "CSC_KEY_PASSWORD=$MAC_CERT_P12_PASSWORD" >> "$GITHUB_ENV" + echo "APPLE_API_KEY=$API_KEY_PATH" >> "$GITHUB_ENV" + echo "APPLE_API_KEY_ID=$APPLE_API_KEY_ID" >> "$GITHUB_ENV" + echo "APPLE_API_ISSUER=$APPLE_API_ISSUER" >> "$GITHUB_ENV" + - name: Build application run: ${{ matrix.build_script }} diff --git a/electron-builder.yml b/electron-builder.yml index ba33e27..5427e4c 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -28,9 +28,10 @@ nsis: uninstallDisplayName: ${productName} createDesktopShortcut: always mac: - identity: null + hardenedRuntime: true + entitlements: build/entitlements.mac.plist entitlementsInherit: build/entitlements.mac.plist - notarize: false + notarize: true artifactName: ${name}-${version}-${arch}.${ext} target: - target: zip