跳到内容
Tauri

macOS 代码签名

macOS 要求代码签名,以便您的应用程序可以列在 Apple App Store 中,并防止从浏览器下载时显示您的应用程序损坏且无法启动的警告。

macOS 上的代码签名需要一个 Apple Developer 帐户,该帐户可以是付费的(每年 99 美元),也可以是免费计划的(仅用于测试和开发目的)。您还需要一个 Apple 设备来执行代码签名。这是签名过程所必需的,并且受 Apple 的条款和条件约束。

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

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

在您的 Apple Developer 帐户中,导航到 Certificates, IDs & Profiles(证书、标识符和配置文件)页面,然后点击 Create a certificate 按钮以打开创建新证书的界面。选择适当的证书类型(Apple Distribution 用于向 App Store 提交应用,Developer ID Application 用于在 App Store 外部发布应用)。上传您的 CSR,然后证书将被创建。

Certificates, IDs & Profiles(证书、标识符和配置文件)页面上,单击您要使用的证书,然后单击 Download 按钮。它会保存一个 .cer 文件,该文件在打开后会将证书安装到钥匙串中。

您可以配置 Tauri 在本地机器上或使用 CI/CD 平台时构建 macOS 应用程序时使用您的证书。

将证书安装到 Mac 电脑钥匙串后,您可以配置 Tauri 以将其用于代码签名。

证书钥匙串条目的名称代表 signing identity,也可以通过执行以下命令找到它

终端窗口
security find-identity -v -p codesigning

此身份可以在 tauri.conf.json > bundle > macOS > signingIdentity 配置选项中提供,也可以通过 APPLE_SIGNING_IDENTITY 环境变量提供。

要在 CI/CD 平台中使用证书,您必须将证书导出为 base64 字符串,并配置 APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORD 环境变量。

  1. 打开 钥匙串访问 应用程序,单击 *登录* 钥匙串中的 *我的证书* 选项卡,然后找到您的证书条目。
  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 set-keychain-settings -t 3600 -u 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 进行身份验证。这可以通过 App Store Connect API 或通过您的 Apple ID 完成。

  1. 打开 App Store Connect 的“用户和访问”页面,选择“集成”选项卡,单击“添加”按钮,然后选择一个名称和“开发者访问权限”。
  2. APPLE_API_ISSUER 环境变量设置为密钥表上方显示的值。
  3. APPLE_API_KEY 环境变量设置为该表中“密钥 ID”列中的值。
  4. 下载私钥,这只能进行一次,并且在页面重新加载后才可见(按钮显示在新创建的密钥的表行上)。
  5. APPLE_API_KEY_PATH 环境变量设置为下载的私钥的文件路径。

如果您不想提供 Apple 认证的身份,但仍希望签名您的应用程序,则可以配置 *临时* 签名。

这对于 ARM(Apple Silicon)设备很有用,因为所有来自互联网的应用程序都需要代码签名。

要配置临时签名,请向 Tauri 提供伪身份 -,例如

"signingIdentity": "-"

有关配置 Tauri 签名身份的详细信息,请参见上文


© 2025 Tauri 贡献者。CC-BY / MIT