菜单

构建和打包系统

相关源文件

Tauri 的构建和打包系统负责编译应用程序的 Rust 代码,打包前端资源,并为各种平台创建可分发的软件包。该系统提供了将您的源代码转换为可分发给用户的特定于平台的安装程序和软件包的基础架构。

系统概览

构建和打包系统包含两个主要组件:

  1. 构建系统:编译 Rust 代码并将其与前端资源一起打包
  2. 打包系统:获取构建产物并创建特定于平台的软件包(DMG、AppImage、MSI 等)

这些组件主要实现在 tauri-clitauri-bundler crates 中,配置由 tauri.conf.json 文件驱动。

来源

配置结构

构建和打包过程通过 tauri.conf.json 文件进行配置,该文件包含与此系统相关的两个主要部分:

  • build:控制应用程序的构建方式
  • bundle:控制应用程序如何打包以进行分发

这是配置结构的直观展示:

来源

构建配置

tauri.conf.json 中的 build 部分控制着你的应用程序的构建方式。

属性类型描述
beforeBuildCommand字符串在构建应用程序之前运行的命令,通常用于构建前端
beforeDevCommand字符串在启动开发模式之前运行的命令,通常用于启动前端开发服务器
devUrl字符串在开发模式下加载的 URL,通常指向本地开发服务器
frontendDist字符串构建后前端资源所在的目录
removeUnusedCommands布尔值是否移除未使用的命令内部以减小二进制文件大小
features数组构建应用程序时要启用的 Cargo 功能列表

配置示例

构建过程使用此配置来:

  1. 执行 beforeBuildCommand 来构建前端资源
  2. 使用指定的功能编译 Rust 应用程序
  3. 将前端资源与编译后的二进制文件一起打包

来源

捆绑包配置

tauri.conf.json 中的 bundle 部分控制着你的应用程序在各种平台上分发时的打包方式。

捆绑配置允许你指定:

  • 要针对的平台(targets
  • 每个目标平台的特定设置
  • 图标路径和资源
  • 代码签名配置
  • 更新程序产物的创建

来源

构建流程

构建过程由 tauri build 命令触发,并遵循以下步骤:

构建过程主要实现于:

构建过程输出编译后的二进制文件,并为其准备打包。

来源

打包过程

打包过程由 tauri build 命令(默认包含打包)或专门的 tauri bundle 命令触发,并遵循以下步骤:

打包过程中涉及的关键组件:

  • BundleSettings:打包过程的配置
  • PackageType:用于不同打包类型(MSI、NSIS、DMG 等)的枚举
  • tauri-bundler crate 中的特定于平台的打包器

打包过程根据捆绑配置创建特定于平台的软件包以供分发。

来源

特定平台打包

打包系统支持为不同的操作系统创建特定于平台的软件包。

Windows 打包

Windows 打包支持两种主要的安装程序类型:

  • MSI (Windows Installer):使用 WiX Toolset 创建
  • NSIS (Nullsoft Scriptable Install System):更可定制的安装程序

配置选项包括:

  • Webview 安装模式
  • Windows 证书签名
  • 安装程序自定义

macOS 打包

macOS 打包会创建:

  • .app 捆绑包:标准的 macOS 应用程序格式
  • .dmg 磁盘映像:用于分发

配置选项包括:

  • 代码签名和公证
  • 加固的运行时设置
  • DMG 外观自定义
  • 最低 macOS 版本要求

示例

Linux 打包

Linux 打包会创建:

  • AppImage:自包含的可执行文件
  • DEB:Debian 包格式
  • RPM:Red Hat 包格式

移动端打包

移动端打包支持:

  • Android:创建 APK 包
  • iOS:创建 IPA 包

移动端打包是 Tauri 中一项较新的功能,并在 CLI 中通过特定命令实现:

  • tauri android build
  • tauri ios build

来源

CLI 命令

构建和打包系统的主要命令是:

命令描述
tauri build构建并打包应用程序
tauri bundle仅打包应用程序(假设它已构建)
tauri dev在开发模式下构建并运行应用程序
tauri ios build为 iOS 构建应用程序
tauri android build为 Android 构建应用程序

每个命令都支持各种标志和选项来自定义构建和打包过程。

带选项的命令示例

tauri build --debug --target x86_64-pc-windows-msvc --features custom-feature

来源

与前端构建的集成

构建系统通过 beforeBuildCommandbeforeDevCommand 配置选项与前端构建集成。这允许 Tauri:

  1. 在构建 Rust 应用程序之前自动构建前端
  2. 在开发模式下运行时启动前端开发服务器

frontendDist 配置指定了在哪里找到构建好的前端资源,这些资源将被嵌入到最终的软件包中。

来源

更新程序支持

当捆绑配置中的 createUpdaterArtifacts 选项启用时,打包系统支持创建更新程序产物。这会创建:

  1. 适合更新程序的压缩应用程序产物
  2. 用于验证更新的签名文件

更新程序产物由 Tauri 内置的更新机制使用,为应用程序提供自动更新。

来源

移动支持

构建和打包系统中的移动端支持允许为 iOS 和 Android 平台创建应用程序。

iOS 打包

iOS 打包过程:

  1. 为 iOS 目标构建 Rust 代码
  2. 创建 Xcode 项目
  3. 注入资源和配置
  4. 构建并签名 IPA 包

特定于 iOS 的配置选项

iOS 构建过程实现在:

Android 打包

Android 打包同样提供工具来:

  1. 为 Android 目标构建 Rust 代码
  2. 生成 Android 项目
  3. 将应用程序打包成 APK

移动端打包通过专用命令触发。

  • tauri ios build
  • tauri android build

来源

结论

Tauri 构建和打包系统提供了一个全面的工具链,用于将您的应用程序源代码转换为各种平台的发行软件包。该系统可通过 tauri.conf.json 文件进行高度配置,允许您自定义构建和打包过程以满足应用程序的需求。

有关特定组件的更多详细信息

  • 有关应用程序配置的信息,请参阅 配置
  • 有关 CLI 命令的信息,请参阅 CLI
  • 有关特定于平台的各项功能的信息,请参阅 平台功能