tauri 备忘清单

tauri 是一个轻量、高性能的跨平台应用开发框架,这里展示了它的常用配置与命令清单

入门

快速开始

Bash

sh <(curl https://create.tauri.app/sh)

PowerShell

C:\> irm https://create.tauri.app/ps | iex

Cargo

$ cargo install create-tauri-app --locked
$ cargo create-tauri-app

npm/yarn/pnpm/bunx

$ npm create tauri-app@latest
$ yarn create tauri-app
$ pnpm create tauri-app
$ bunx create-tauri-app

依赖环境

软件描述
rustrust安装
nodejsnodejs安装
Windows Build ToolsMicrosoft C++ 生成工具 (for windows)

启动 Tauri 开发窗口

$ npm run tauri dev
$ yarn tauri dev
$ pnpm tauri dev
$ bunx tauri dev
$ cargo tauri dev

检测最新版本的 Tauri

$ npm outdated @tauri-apps/cli
$ yarn outdated @tauri-apps/cli
$ pnpm add -D @tauri-apps/cli
$ npm outdated @tauri-apps/cli

更新 npm 包

$ npm install @tauri-apps/cli@latest @tauri-apps/api@latest
$ yarn upgrade @tauri-apps/cli @tauri-apps/api --latest
$ yarn up @tauri-apps/cli @tauri-apps/api
$ pnpm update @tauri-apps/cli @tauri-apps/api --latest
$ bun update @tauri-apps/cli @tauri-apps/api

更新 Cargo 包

打开 src-tauri/Cargo.toml 并更改 tauritauri-build

[build-dependencies]
tauri-build = "%version%"

[dependencies]
tauri = { version = "%version%" }

其中 %version% 是上面相应的版本号

$ cd src-tauri
$ cargo update

应用程序调试

代码中输出日志方法

println!("Message from Rust: {}", msg);

在 Linux 和 macOS 上通过下面命令重新运行

RUST_BACKTRACE=1 tauri dev

Window 上这样开启

set RUST_BACKTRACE=1
tauri dev

以编程方式打开 Devtools

use tauri::Manager;
tauri::Builder::default()
  .setup(|app| {
    #[cfg(debug_assertions)] // 仅在调试构建时包含此代码
    {
      let window = app.get_window("main").unwrap();
      window.open_devtools();
      window.close_devtools();
    }
    Ok(())
  });

在生产中使用检查器

$ npm run tauri build -- --debug
$ yarn tauri build --debug
$ pnpm tauri build --debug
$ bunx tauri build --debug
$ cargo tauri build --debug

启用开发工具功能

[dependencies]
tauri = { version = "...", features = ["...", "devtools"] }

在文件 src-tauri/Cargo.toml 中启用 devtools Cargo 功能

移动端开发

注意事项

Tauri 使用系统原生的 Webview,而不像 Electron 那样将完整的 Chromium 打包进应用,因此构建产物体积相当小。

但各手机厂商对于 Webview 的支持程度不同,因此在部分设备可能会出现一些兼容性问题。

安卓开发

安装 Android Studio

在进行安卓开发之前,需要首先安装 Android Studio 并配置好环境变量。

安装后,打开 Settings,切换到 Languages & Frameworks > Android SDK 界面。

可以在这个页面更改 Android SDK Location 以调整 SDK 安装目录

安装以下内容:

  • Android SDK Platform
  • Android SDK Platform-Tools
  • NDK (Side by side)
  • Android SDK Build-Tools
  • Android SDK Command-line Tools

环境变量

  • JAVA_HOME: 若无其他 JDK 环境,可以配置为 Android Studio 安装目录下的 jbr 目录。

  • ANDROID_HOME: 配置为 Android SDK Location 目录下的 sdk 目录。

  • NDK_HOME: 配置为 Android SDK Location 目录下的 ndk 下的 ndk 版本号目录。

编译目标

Rust 默认只安装当前主机平台的编译目标(比如在 macOS 上默认就是 x86_64-apple-darwin)。 如果你想编译到其它平台或架构,就需要使用 rustup target add 安装对应的编译目标。

Android 应用打包时,一般会把编译的这几种架构的库文件全都放进 APK/ABB 中,系统会自动选择匹配的那个。

targetCPU 架构常见设备/场景
aarch64-linux-androidARM 64 位新款安卓手机(主流)
armv7-linux-androideabiARM 32 位老款安卓手机(较少见)
i686-linux-androidIntel x86 32 位早期安卓模拟器(老旧)
x86_64-linux-androidIntel x86 64 位安卓模拟器、新款 Chromebook
$ rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android

创建 Android 项目

创建基础 Tauri 项目:

# 创建 tauri 项目
$ npm create tauri-app@latest
# 安装依赖
$ npm install

手动创建:

$ npm install -D @tauri-apps/cli@latest
# 进入项目目录初始化,按照提示输入即可
$ npx tauri init

创建后,则可以执行以下命令:

# 初始化 Android 开发配置
$ npx tauri android init
# 开发 Android 应用
$ npx tauri android dev
# 构建 Android 应用
$ npx tauri android build

开发调试

首先需要在开发环境下打开应用,才能进行调试。

在浏览器打开检查页面,根据浏览器不同,地址也不同,edge 浏览器是 edge://inspect,chrome 浏览器是 chrome://inspect

在检查页面中,会显示当前运行的应用,点击 inspect 即可打开调试工具。

生成签名

Android 系统要求所有 APK 必须先使用证书进行数字签名,然后才能安装到设备上或进行更新。

keytool 是 Java 数据证书管理工具。

可以在 JAVA_HOME 环境变量指向的目录下的 /bin/ 目录中找到 keytool.exe

执行以下命令之后按照提示进行输入即可。

$ keytool -genkey -v -keystore 自定义的数据文件名称 -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias 自定义的证书别名

如果是要上架应用商店的,要如实填写。否则可能会导致因信息不对从而上架失败。

输入完毕,确认后,工具会要求设置密码。记住密码,后面会用到。

完成以上操作后,在当前工作目录下会生成一个 自定义的数据文件名称.keystore 文件。

手动签名

$ keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
$ zipalign -p -f -v 4 unsigned.apk release.apk
$ apksigner sign --ks android.keystore release.apk

自动签名

创建 src-tauri/gen/android/keystore.properties 文件。

storePassword=数据文件密码
keyPassword=证书密码
keyAlias=自定义的证书别名
storeFile=自定义的数据文件名称.keystore

需要注意,在 windows 下,storeFile 需要 C:\\Program Files\\Android 这样的格式。

随后找到 src-tauri/gen/android/app/build.gradle.kts 文件,添加以下内容:

import java.io.FileInputStream

// ...
android {
  defaultConfig {
    // ...
  }
  signingConfigs {
    create("release") {
        val keystorePropertiesFile = rootProject.file("keystore.properties")
        val keystoreProperties = Properties()
        if (keystorePropertiesFile.exists()) {
            keystoreProperties.load(FileInputStream(keystorePropertiesFile))
        }

        keyAlias = keystoreProperties["keyAlias"] as String
        keyPassword = keystoreProperties["keyPassword"] as String
        storeFile = file(keystoreProperties["storeFile"] as String)
        storePassword = keystoreProperties["storePassword"] as String
    }
  }
  buildTypes {
    // ...
    getByName("release") {
      signingConfig = signingConfigs.getByName("release")
      // ...
    }
  }
}

配置完毕后,当执行 npm run tauri android build 时,会自动对构建的 APK/AAB 文件进行签名。

iOS 开发

预先准备

根据苹果政策,MacOS 不允许运行在非 Mac 硬件上,而开发所依赖的 Xcode 工具链只在 MacOS 上可用。

因此,为了进行开发 iOS 和 MacOS 应用,必须要有一台 Mac 设备。

对应用进行签名和发布,需要加入 Apple Developer Program(年费 99 美元)

不付费可以正常使用 Xcode 等工具,但无法进行正式签名和在 App Store 上架。

 

签名

iOS 应用的签名现在已经非常简单了。

在 Xcode 打开项目,登录 Apple Developer 账号,在项目配置中找到并勾选自动管理签名即可。

Xcode 会自动帮助我们管理证书,签名等。

 

开发调试

首先需要在开发环境下打开应用,才能进行调试。

在 Mac 上打开 Safari 浏览器,开启开发者模式,接着找到需要调试的设备即可。

如果是真机调试,则需要在设备上开启开发者模式。

 

环境搭建

安装 Xcode

Xcode 是苹果官方的开发工具,提供了完整的开发环境,包括测试,分发,模拟器等。

需要注意的是,Xcode 的版本并非越新越好,而是要根据当前设备的 MacOS 的系统版本来选择。

前往 Xcode 页面 下载安装 Xcode。

安装 Homebrew

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

使用 Homebrew 安装 Cocoapods

brew install cocoapods

增加编译目标

$ rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim

创建 iOS 项目

首先创建基础 Tauri 项目。

# 创建 tauri 项目
$ npm create tauri-app@latest
# 安装依赖
$ npm install

手动创建:

$ npm install -D @tauri-apps/cli@latest
# 进入项目目录初始化,按照提示输入即可
$ npx tauri init

创建后,则可以执行以下命令:

# 初始化 iOS 开发配置
$ npx tauri ios init
# 开发 iOS 应用
$ npx tauri ios dev
# 构建 iOS 应用
$ npx tauri ios build

配置

配置结构

默认配置 tauri.conf.json,还支持 tauri.conf.json5Tauri.toml

----
package包设置
tauriTauri 配置
build构建配置
plugins插件配置

下面配置能与主配置进行合并

  • tauri.linux.conf.jsonTauri.linux.conf.toml
  • tauri.windows.conf.jsonTauri.windows.conf.toml
  • tauri.macos.conf.jsonTauri.macos.conf.toml

示例

{
  "build": { ... },
  "package": { ... },
  "tauri": { ... }
}

Tauri 配置

配置Type描述
patternPatternKind应用程序名称
versionWindowConfig[]应用程序版本
cliCliConfigCLI 配置
bundleBundleConfig打包器配置
allowlistAllowlistConfig允许列表配置
securitySecurityConfig安全配置
updaterUpdaterConfig更新程序配置
systemTraySystemTrayConfig配置应用系统托盘
macOSPrivateApibooleanmacOS 私有API配置

CliConfig

配置Type描述
descriptionstring?将显示在帮助信息中
longDescriptionstring?将显示在帮助信息中
beforeHelpstring?该信息显示在自动生成的帮助信息之前。这通常用于标题信息
afterHelpstring?显示在自动生成的帮助信息之后。通常用于描述如何使用参数,或者需要注意的注意事项
argsarray?命令的参数列表
subcommandsobject?该命令的子命令列表

描述 CLI 配置

Package 配置

配置描述
productName应用程序名称
version应用程序版本

WindowConfig

窗口配置对象

配置Type默认值描述
labelstringnull窗口标识符
urlWindowUrlview窗口的 webview URL
userAgentuserAgent?nullwebview 的用户代理
fileDropEnabledbooleantrue是否在 Web 视图上启用文件放置
centerbooleanfalse窗口是否开始居中
xnumber?null窗口左上角的水平位置
ynumber?null窗口左上角的水平位置
widthnumber800窗口宽度
heightnumber600窗口高度
minWidthnumbernull最小窗口宽度
minHeightnumbernull最小窗口高度

PatternKind

应用模式。可以是以下类型中的任意一种:

棕地模式

{ "use": "brownfield" }

隔离模式。建议出于安全目的

{
  "use": "isolation",
  "options": { "dir": string }
}

WindowUrl

要在 Tauri Web 视图窗口中打开的 URL。可以是以下任何一种类型:

  • string (format: uri):外部 URL。
  • string:应用程序 URL 的路径部分。例如,要加载 tauri://localhost/users/john,只需在此配置中提供 users/john

SystemTrayConfig

配置Type默认值描述
iconPathstring(必填)null系统托盘上使用的默认图标的路径
iconAsTemplatebooleanfalse用于确定图像是否代表 macOS 上的模板图像
menuOnLeftClickbooleantrue确定在 macOS 上托盘图标收到左键点击时菜单是否应该出现
titlestring?nullMacOS 托盘标题

应用程序系统托盘图标的配置