跳到内容
Tauri

macOS 代码签名

macOS 上需要代码签名,以允许您的应用程序在 Apple App Store 中列出,并防止从浏览器下载时出现应用程序已损坏且无法启动的警告。

先决条件

macOS 上的代码签名需要一个 Apple Developer 帐户,该帐户可以是付费的(每年 99 美元)或免费计划。您还需要一台 Apple 设备来执行代码签名。这是签名过程的要求,并且由于 Apple 的条款和条件。

签名

要为 macOS 设置代码签名,您必须创建 Apple 代码签名证书并将其安装到您的 Mac 计算机钥匙串中,或将其导出以在 CI/CD 平台中使用。

创建签名证书

要创建新的签名证书,您必须从您的 Mac 计算机生成证书签名请求 (CSR) 文件。请参阅 创建证书签名请求 以了解如何为代码签名创建 CSR。

在您的 Apple Developer 帐户中,导航到 证书、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