跳到內容
Tauri

macOS 程式碼簽署

在 macOS 上,程式碼簽署是必要的,以便讓您的應用程式在 Apple App Store 上架,並防止從瀏覽器下載時,出現應用程式損壞且無法啟動的警告。

先決條件

macOS 上的程式碼簽署需要 Apple 開發者帳號,該帳號可以是付費的(每年 99 美元)或免費方案。您還需要一部 Apple 裝置,您可以在該裝置上執行程式碼簽署。這是簽署流程以及 Apple 條款與條件所要求的。

簽署

要設定 macOS 的程式碼簽署,您必須建立 Apple 程式碼簽署憑證,並將其安裝到您的 Mac 電腦鑰匙圈中,或匯出以在 CI/CD 平台中使用。

建立簽署憑證

要建立新的簽署憑證,您必須從您的 Mac 電腦產生憑證簽署請求 (CSR) 檔案。請參閱建立憑證簽署請求,以了解如何為程式碼簽署建立 CSR。

在您的 Apple 開發者帳號中,導覽至憑證、ID 與描述檔頁面,然後按一下 建立憑證 按鈕,以開啟介面來建立新的憑證。選擇適當的憑證類型(Apple Distribution 以將應用程式提交到 App Store,以及 Developer ID Application 以在 App Store 以外的地方發布應用程式)。上傳您的 CSR,憑證將會建立。

下載憑證

憑證、ID 與描述檔頁面上,按一下您要使用的憑證,然後按一下 下載 按鈕。它會儲存一個 .cer 檔案,一旦開啟,就會在鑰匙圈上安裝憑證。

設定 Tauri

您可以設定 Tauri,以便在您的本機電腦上或使用 CI/CD 平台建置 macOS 應用程式時使用您的憑證。

本機簽署

憑證安裝在您的 Mac 電腦鑰匙圈中後,您可以設定 Tauri 以使用它進行程式碼簽署。

憑證鑰匙圈條目的名稱代表 簽署身分,也可以透過執行以下命令找到

security find-identity -v -p codesigning

此身分可以在 tauri.conf.json > bundle > macOS > signingIdentity 組態選項中提供,或透過 APPLE_SIGNING_IDENTITY 環境變數提供。

在 CI/CD 平台簽署

若要在 CI/CD 平台中使用憑證,您必須將憑證匯出為 base64 字串,並設定 APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORD 環境變數

  1. 開啟 鑰匙圈存取 應用程式,按一下 login 鑰匙圈中的「我的憑證」標籤,然後找到您憑證的條目。
  2. 展開條目,在金鑰項目上按一下滑鼠右鍵,然後選取 匯出 "$KEYNAME"
  3. 選取路徑以儲存憑證的 .p12 檔案,並為匯出的憑證定義密碼。
  4. 在終端機上執行以下腳本,將 .p12 檔案轉換為 base64
openssl base64 -in /path/to/certificate.p12 -out certificate-base64.txt
  1. certificate-base64.txt 檔案的內容設定為 APPLE_CERTIFICATE 環境變數。
  2. 將憑證密碼設定為 APPLE_CERTIFICATE_PASSWORD 環境變數。

GitHub Actions 設定範例

必要密鑰

  • APPLE_ID - 您的 Apple ID 電子郵件
  • APPLE_ID_PASSWORD - 您的 Apple ID 密碼
  • APPLE_CERTIFICATE - base64 編碼的 .p12 檔案
  • APPLE_CERTIFICATE_PASSWORD - 您的匯出 .p12 檔案的密碼
  • KEYCHAIN_PASSWORD - 您的鑰匙圈密碼

查看官方 GitHub 指南以了解如何設定密鑰

name: 'build'
on:
push:
branches:
- main
jobs:
build-macos:
needs: prepare
strategy:
matrix:
include:
- args: '--target aarch64-apple-darwin'
arch: 'silicon'
- args: '--target x86_64-apple-darwin'
arch: 'intel'
runs-on: macos-latest
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
steps:
- name: Import Apple Developer Certificate
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain
security find-identity -v -p codesigning build.keychain
- name: Verify Certificate
run: |
CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep "Apple Development")
CERT_ID=$(echo "$CERT_INFO" | awk -F'"' '{print $2}')
echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
echo "Certificate imported."
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }}
with:
args: ${{ matrix.args }}

公證

要公證您的應用程式,您必須提供 Tauri 的憑證,以向 Apple 驗證身分

  • APPLE_API_ISSUER、APPLE_API_KEY 和 APPLE_API_KEY_PATH:使用 App Store Connect API 金鑰進行驗證

    開啟App Store Connect 的「使用者與存取權限」頁面,選取「整合」標籤,按一下「新增」按鈕,然後選取名稱和「開發者」存取權限。APPLE_API_ISSUER(發行者 ID)顯示在金鑰表格上方,而 APPLE_API_KEY 是該表格上「金鑰 ID」欄位中的值。您還需要下載私密金鑰,這只能執行一次,並且只有在頁面重新載入後才會顯示(按鈕顯示在金鑰表格列中,適用於新建立的金鑰)。私密金鑰檔案路徑必須透過 APPLE_API_KEY_PATH 環境變數設定。

  • APPLE_ID、APPLE_PASSWORD 和 APPLE_TEAM_ID:使用您的 Apple ID 進行驗證

    或者,若要使用您的 Apple ID 進行驗證,請將 APPLE_ID 設定為您的 Apple 帳號電子郵件,並將 APPLE_PASSWORD 設定為 Apple 帳號的應用程式專用密碼。


© 2025 Tauri 貢獻者。CC-BY / MIT