当前位置: 首页 > news >正文

Tauri 打包发布全流程:从源码一键生成 deb/msi/dmg 安装包清单

Tauri 打包发布全流程:从源码一键生成 deb/msi/dmg 安装包清单

【免费下载链接】tauri-tutorial📚 Tauri Tutorial (系列教程 - 打造属于自己的跨端应用)项目地址: https://gitcode.com/gh_mirrors/ta/tauri-tutorial

如果你正在用Tauri开发跨端应用,最关心的问题之一就是:写好的代码如何变成 Windows 的 msi、macOS 的 dmg、Linux 的 deb 安装包?本篇文章为你整理一份Tauri 打包发布清单,从环境准备、构建配置到一键发布,帮你快速上手跨端应用打包流程。本文以开源项目 Tauri Tutorial(📚 Tauri 系列教程,打造属于自己的跨端应用)为例,手把手演示完整操作。

为什么选择 Tauri 打包跨端应用?

Tauri 与传统方案最大的不同在于:它基于系统 WebView 渲染界面,打包体积小、内存占用低,同时支持 Rust 后端能力。它的打包系统内置了对三大平台的支持,一条命令即可产出安装包:

  • 🪟 Windows:生成.msi(以及可选的.exe安装程序)
  • 🍎 macOS:生成.dmg镜像与.app应用
  • 🐧 Linux:生成.deb.rpm.AppImage

打包前必备环境清单

在开始 Tauri 打包之前,请先确认你的开发机满足以下条件:

平台必需工具说明
全平台Rust(rustc + cargo)Tauri 后端编译依赖
全平台Node.js 与包管理器(yarn/npm)前端构建依赖
Linuxlibwebkit2gtk-4.0-devbuild-essentiallibssl-devdeb 打包需要
macOSXcode Command Line Tools签名与 dmg 生成
WindowsMicrosoft C++ Build Tools + WebView2msi 打包需要

本项目的README.md还额外提到 Rust 生态的wasm-packrsw(Rust 前端工具链),配合rsw.toml使用,如果你的项目也用到 wasm 编译,需要一并安装。

理解 tauri.conf.json 的打包配置

Tauri 的打包行为全部由src-tauri/tauri.conf.json控制,这是打包发布的核心配置文件。关键字段如下:

  • package.productName:安装包显示名称(本项目中为OhMyBox
  • package.version:版本号,会同步读取根目录package.jsonversion字段
  • bundle.active:是否启用打包,必须为true
  • bundle.targets:目标格式,all表示当前平台所有支持的格式
  • bundle.identifier:应用唯一标识,如com.lencx.omb
  • bundle.icon:各平台图标,包含icon.icnsicon.ico与多尺寸 png
  • bundle.deb.depends:deb 包的依赖声明
  • bundle.windows:Windows 签名与摘要算法配置

此外,build.beforeBuildCommand会在打包前自动执行前端构建(本项目配置为yarn build),distDir指向../dist前端产物目录,Tauri 会把它们一并封装进安装包。

一键安装步骤:执行打包命令

环境与配置就绪后,Tauri 打包只需要一行命令。在项目根目录执行:

yarn tauri build

这条命令会依次完成:

  1. 执行beforeBuildCommand,构建前端资源(本项目会触发rsw buildtscvite build
  2. 编译 Rust 后端(首次编译较慢,耐心等待)
  3. 调用系统打包器生成对应平台的安装包

最快配置方法:只构建指定格式

如果只想产出单一格式,可以追加--bundles参数,例如:

# 仅生成 Linux deb 安装包 yarn tauri build --bundles deb # 仅生成 Windows msi 安装包 yarn tauri build --bundles msi # 仅生成 macOS dmg 安装包 yarn tauri build --bundles dmg

调试打包问题的小技巧

  • 打包失败时,先单独运行yarn build确认前端产物正常
  • 查看src-tauri/target/release/bundle/目录,安装包会按平台分类输出
  • 若改动过tauri.conf.json,需重新执行完整打包命令才会生效

版本号管理与发布脚本

Tauri Tutorial 项目提供了完善的发布脚本,位于scripts/目录,让发布流程更加自动化:

  • release.mjs:版本发布脚本,支持majorminorpatch三种版本号升级方式,运行yarn release即可自动更新package.json版本号、生成更新日志并打 git tag
  • updatelog.mjs:解析UPDATE_LOG.md,按 tag 提取对应版本的更新说明
  • updater.mjs:自动生成 Tauri 内置更新器的install.json配置(需GITHUB_TOKEN环境变量),对应tauri.conf.jsonupdater配置段

版本号升级示例:

# 补丁版本:0.1.7 → 0.1.8 yarn release patch # 次版本:0.1.7 → 0.2.0 yarn release minor

跨平台发布注意事项

Windows msi 打包要点

  • 需要 Microsoft C++ Build Tools,并勾选 Windows SDK
  • 若配置了签名,需在tauri.conf.jsonwindows.certificateThumbprint中填入证书指纹
  • 默认使用sha256摘要算法

macOS dmg 打包要点

  • 必须先安装 Xcode Command Line Tools
  • 未签名时系统会提示“无法验证开发者”,需要右键打开或配置signingIdentity
  • 本项目开启了macOSPrivateApi与毛玻璃效果(见 setup.rs),仅支持 macOS,无需额外配置

Linux deb 打包要点

  • 需安装libwebkit2gtk-4.0-dev等系统依赖
  • 可在bundle.deb.depends中补充运行依赖
  • 生成的 deb 可直接用dpkg -i安装,或用.AppImage免安装运行

分发与自动更新

安装包生成后,你需要把它们上传到自己的更新服务器。Tauri 内置了 updater 功能,本项目配置了updater段(active: true),支持 Windows、macOS、Linux 三端在线更新。配合scripts/updater.mjs生成的install.json,应用启动时会自动检测新版本并提示升级。

总结

从源码到安装包的 Tauri 打包发布流程其实很简单:准备好环境 → 配置tauri.conf.json→ 执行yarn tauri build→ 分发安装包。Tauri Tutorial 项目还提供了完整的版本管理与自动更新脚本,值得作为参考模板。如果你想动手实践,可以克隆仓库https://gitcode.com/gh_mirrors/ta/tauri-tutorial亲自体验一次完整的打包发布之旅 🚀。

【免费下载链接】tauri-tutorial📚 Tauri Tutorial (系列教程 - 打造属于自己的跨端应用)项目地址: https://gitcode.com/gh_mirrors/ta/tauri-tutorial

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4120566.html

相关文章:

  • 如何从Pico-8迁移到Usagi引擎?突破token限制的完整对照指南
  • 图片转3D模型免费工具:5分钟把照片变成可打印的STL文件
  • 石家庄洗衣机维修服务指南|滚筒、波轮、洗烘一体机故障检修|欧米到家
  • 如何免费管理PS4游戏金手指:GoldHEN Cheats Manager完整上手指南
  • react-lines-ellipsis loose版全解析:基于-webkit-line-clamp的高性能CSS文本截断
  • 普通鼠标秒变苹果触控板?Mac Mouse Fix 平滑滚动与按键自定义完整指南
  • 5分钟完成Erasing Concepts from Diffusion Models(ESD)环境安装:零基础完整教程
  • 三套键鼠共用一个屏幕?Universal Split Screen 本地分屏实测:从拿到源码到顺利开黑
  • eSearch 离线OCR 使用指南:从截屏取字到翻译校对,一篇讲透
  • tt-rss-feedly-theme进阶改造:如何修改_variables.less打造你的专属配色方案?
  • Unity游戏模组框架BepInEx零基础完整教程:从装模组翻车到插件自由
  • G-Helper 实测:免费开源的华硕笔记本性能控制工具,凭什么把官方奥创请下台?
  • B站视频下载加AI总结一次搞定?BiliTools免费工具箱实测,3分钟把收藏夹吃灰的视频变成笔记
  • PDF批量修改有多简单?免费开源的PDF补丁丁5分钟速成指南
  • BmcWeb:log输出
  • flipperzero-rs蓝牙开发:如何打造iBeacon与Eddystone广播应用
  • 如何用纯Python完成Web应用开发?Reflex框架5步实战上手指南
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(1):Mat 类的基本用法
  • 3分钟上手CodexBar:免登录实时查看OpenAI与Claude使用统计的省钱秘诀
  • 说句扎心的:后端转Agent开发,90%的人第一步就走错了
  • 动漫解说配音用什么声音最合适?哪款动漫配音软件值得推荐?
  • video-analyzer 视频内容分析:一条命令,把任何视频变成一份可搜索的文字报告
  • Windows部署NFSv4.1客户端:从编译驱动到成功挂载的7步完整实战
  • 星露谷物语农场规划器实测:三百小时的老档,我劝你先画图再动工
  • Linux 内核 cortina 以太网驱动竞态高危漏洞 CVE‑2026‑64056 技术解析
  • 【TDengine】如何查看数据库、表的元信息(schema)?
  • Minecraft三层随机生存挑战:数据包实现与极限资源管理
  • 深入解析JavaScript核心机制与高频面试考点
  • 一条命令搞定M3U8视频下载:从网页播放到本地收藏的终极指南
  • ERP系统验收测试指南:如何确保系统满足业务需求