Tauri 从 v2 开始正式支持移动端,让同一套前端 + Rust 后端可以同时输出桌面和移动应用。不过移动端的构建过程与桌面端略有不同,环境准备需要更仔细。
前置依赖
无论开发 iOS 还是 Android,你都需要安装这些基础工具:
- Node.js 和
pnpm/yarn/npm - Rust(通过
rustup安装,并使用stable工具链) - Tauri CLI:
cargo install tauri-cli --version "^2"
然后为移动平台添加对应的编译目标:
rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
iOS 环境搭建
- 安装 Xcode(从 App Store 获取),并确保已接受许可协议:
sudo xcodebuild -license accept
- 安装 iOS 模拟器:打开 Xcode → Preferences → Components,下载至少一个 iOS 版本。
- 验证 Rust 目标已正确安装(上面的
aarch64-apple-ios等)。 - 授权终端访问 Xcode 工具链:确保
xcrun可用。
项目配置
在已有的 Tauri 项目中初始化 iOS:
npx tauri ios init
这会生成 ios/ 目录(包含 Xcode 工程),并在 tauri.conf.json 中添加 bundle 下移动端相关的配置,例如包名、版本号、开发团队 ID 等。
你需要在配置文件中填写:
{
"bundle": {
"identifier": "com.example.myapp",
"iOS": {
"developmentTeam": "YOUR_TEAM_ID"
}
}
}
若仅用模拟器调试,developmentTeam 可暂时留空,但真机打包必须提供。
运行
npx tauri ios dev
会启动 Metro(React Native 式的开发服务器)并在模拟器中加载应用。Rust 后端代码会被编译成 iOS 静态库并与原生项目集成。
Android 环境搭建
- 安装 Android Studio,并在 SDK Manager 中下载:
- Android SDK Platform(至少 API 30)
- NDK(推荐最新稳定版)
- Android SDK Build-Tools
- Platform-Tools
- 模拟器(可选)
- 设置环境变量(将下面的路径替换为你的实际路径):
export ANDROID_HOME="$HOME/Android/Sdk"
export NDK_HOME="$ANDROID_HOME/ndk/26.1.10909125"
export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH"
- 安装 Java JDK 17 或更高版本(推荐 OpenJDK)。
- 验证:运行
sdkmanager --list和adb命令是否可用。
项目配置
初始化 Android:
npx tauri android init
这会创建 android/ 目录,并生成 Gradle 构建文件。在 tauri.conf.json 中同样需要 identifier,Android 的默认包名即从此处读出。
运行
npx tauri android dev
它会启动 Gradle 构建,安装到连接的设备或模拟器上,并自动启动热重载。Rust 代码会被编译成动态库(.so)并打包进 APK。
通用配置要点
- 前端开发服务器地址:移动设备与电脑处于同一网络时,Tauri 会自动配置
devUrl,但若出现连接问题,可在tauri.conf.json中明确指定本机 IP。 - 权限:移动端对文件、网络、相机等权限控制更严格,需分别在
Info.plist(iOS)和AndroidManifest.xml(Android)中声明,否则运行时可能崩溃或功能失效。 - 签名:调试可用默认签名,发布时必须配置 iOS 的证书/描述文件,和 Android 的密钥库。
- 多平台代码:在 Rust 中可用
#[cfg(target_os = "android")]等条件编译处理平台差异。
常见问题
tauri ios dev卡在“等待 Rust 编译”:检查rustup target列表是否包含aarch64-apple-ios-sim,模拟器需要此目标。- Android 无法找到 NDK:确保
NDK_HOME指向正确目录,且与ANDROID_HOME下的 NDK 版本匹配。 - 模拟器启动白屏:先确保前端项目可独立在浏览器运行,再检查 WebView 是否加载了正确 URL。
完成上述配置后,你就可以在真机或模拟器上实时调试同一个 Tauri 项目,实现“一套代码,全端运行”了。