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