人人都会AI编程

本地多平台打包、CI 云打包(GitHub Actions)

更新时间:2026-07-11

Tauri 的跨平台打包体验非常统一:只要你的开发环境配置正确,同一套代码可以一键生成 Windows、macOS、Linux 的安装包。同时,借助 GitHub Actions 等 CI 服务,你可以实现推送代码即自动构建全平台产物,极大简化发布流程。


本地多平台打包

Tauri 的 CLI 工具 @tauri-apps/cli 提供了 tauri build 命令,它会自动检测当前操作系统,编译 Rust 内核,打包前端资源,并生成对应平台的安装包。基本流程如下:

  1. 确保环境准备
  • Windows:需要安装 WebView2 运行时(Windows 10 1803+ 已内置),以及 Microsoft Visual C++ 构建工具。
  • macOS:Xcode Command Line Tools 和系统自带 WKWebView。
  • Linux:安装 libwebkit2gtk-4.1-devlibayatana-appindicator3-dev 等依赖(不同发行版略有差异)。
  1. 配置 tauri.conf.json

bundle 段中定义各平台打包参数,例如:

   {
     "bundle": {
       "active": true,
       "targets": "all",
       "icon": ["icons/32x32.png", "icons/128x128.png"],
       "windows": {
         "wix": null,
         "nsis": null
       },
       "macOS": {
         "frameworks": []
       }
     }
   }
   

你可以根据目标自行启用 MSI、NSIS(Windows)、DMG(macOS)或 AppImage / deb(Linux)。

  1. 运行打包命令
   npm run tauri build
   

或者直接使用 npx tauri build。Tauri 会依次执行:

  • 编译 Rust 后端(release 模式,自动优化体积);
  • 构建前端(如果你配置了 beforeBuildCommand);
  • 生成平台特定的安装包到 src-tauri/target/release/bundle/ 目录。

跨平台局限性:在 macOS 上只能生成 macOS 包,同样 Windows 只能生成 Windows 包。若需在单台电脑上生成其他平台的包,可以借助交叉编译,但官方更推荐使用 CI 服务。


CI 云打包(GitHub Actions)

利用 GitHub Actions 的矩阵策略,你可以用一套工作流同时构建三个平台的安装包,并在每次推送标签(tag)时自动发布到 GitHub Release。以下是一个经过验证的实用配置示例:

name: Release
on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Install dependencies (Linux)
        if: matrix.os == 'ubuntu-latest'
        run: |
          sudo apt-get update
          sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev

      - name: Install frontend dependencies
        run: npm ci

      - name: Build Tauri app
        uses: tauri-apps/tauri-action@v0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tagName: ${{ github.ref_name }}
          releaseName: 'App v__VERSION__'
          releaseBody: 'See the assets to download this version.'
          releaseDraft: true
          prerelease: false

关键点解析

  • 矩阵策略os 数组让工作流在三个系统上并行执行,每个系统只生成对应平台的包,无需交叉编译。
  • 依赖安装:Linux 需要额外安装 WebKitGTK 开发包,其他平台通常已自备。
  • tauri-apps/tauri-action:这是官方维护的 Action,它自动读取 tauri.conf.json 中的配置,调用 tauri build,并将生成的包上传到 Release。它会替换 VERSION 为实际版本号。
  • 密钥GITHUB_TOKEN 会自动拥有仓库的写权限,用于创建 Release 和上传资产。

实用技巧

  • 在推送标签前,可以先在本地测试完整构建流程,避免 CI 失败。
  • 若不想每次推送都构建,可以限制触发分支或添加 workflow_dispatch 手动触发。
  • 可以在构建前添加 ESLint、测试、Rust clippy 检查等步骤,保证质量。
  • 生成的安装包默认带版本号,配置清晰后,每次发版只需打一个 v1.0.0 标签并推送,机器人就会自动交付三个平台的安装包。

通过本地 + CI 的组合,你可以在开发阶段快速迭代,在发布阶段全自动生成干净、专业的桌面应用安装包,彻底告别手动打包和上传的繁琐。