tauri2-mobile

acaprino's avatarfrom acaprino

Expert guidance for developing, testing, and deploying mobile applications with Tauri 2. Use when working with Tauri 2 mobile development for Android/iOS, including project setup, Rust backend patterns, frontend integration, plugin usage (biometric, geolocation, notifications, IAP), emulator/ADB testing, code signing, and Play Store/App Store deployment.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 10, 2026

When & Why to Use This Skill

This Claude skill provides expert guidance for developing, testing, and deploying cross-platform mobile applications using Tauri 2. It bridges the gap between web technologies and Rust backends, offering specialized support for project setup, native plugin integration, and store-ready deployment for Android and iOS.

Use Cases

  • Initializing and configuring new Tauri 2 mobile projects with optimized environment setups for Android and iOS.
  • Implementing native mobile functionalities such as biometric authentication, geolocation, and in-app purchases using Tauri's Rust-based plugin system.
  • Debugging mobile-specific issues using ADB/emulator logs and resolving common WebView rendering or frontend-to-backend communication errors.
  • Managing the end-to-end deployment workflow, including code signing, CI/CD pipeline configuration, and preparing assets for the Google Play Store and Apple App Store.
nametauri2-mobile
descriptionExpert guidance for developing, testing, and deploying mobile applications with Tauri 2. Use when working with Tauri 2 mobile development for Android/iOS, including project setup, Rust backend patterns, frontend integration, plugin usage (biometric, geolocation, notifications, IAP), emulator/ADB testing, code signing, and Play Store/App Store deployment.

Tauri 2 Mobile Development

Build cross-platform mobile apps with Tauri 2 using web technologies (HTML/CSS/JS) for UI and Rust for native backend.

Quick Reference

Task Command
Init mobile npm run tauri android init / npm run tauri ios init
Dev Android npm run tauri android dev
Dev iOS npm run tauri ios dev
Build APK npm run tauri android build --apk
Build AAB npm run tauri android build --aab
Build iOS npm run tauri ios build
Add plugin npm run tauri add <plugin-name>

Workflow Decision Tree

New Project Setup

  1. Read references/setup.md for environment configuration
  2. Run npm create tauri-app@latest with mobile targets
  3. Configure tauri.conf.json with app identifier

Adding Features

Testing

Building & Deployment

Project Structure

my-app/
├── src/                          # Frontend
├── src-tauri/
│   ├── Cargo.toml
│   ├── tauri.conf.json           # Main config
│   ├── src/
│   │   ├── main.rs               # Desktop entry (don't modify)
│   │   └── lib.rs                # Main code + mobile entry
│   ├── capabilities/
│   │   └── default.json          # Permissions
│   └── gen/
│       ├── android/              # Android Studio project
│       └── apple/                # Xcode project

Essential Configuration

tauri.conf.json

{
  "$schema": "https://schema.tauri.app/config/2",
  "productName": "MyApp",
  "identifier": "com.company.myapp",
  "bundle": {
    "iOS": { "minimumSystemVersion": "14.0" },
    "android": { "minSdkVersion": 24 }
  }
}

capabilities/default.json

{
  "identifier": "default",
  "windows": ["main"],
  "permissions": ["core:default"]
}

lib.rs (Mobile Entry)

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_opener::init())
        .plugin(tauri_plugin_deep_link::init())
        .invoke_handler(tauri::generate_handler![greet])
        .run(tauri::generate_context!())
        .expect("error");
}

#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}

Common Issues

Problem Solution
White screen Check JS console, verify devUrl, check capabilities
iOS won't connect Use --force-ip-prompt, select IPv6
INSTALL_FAILED_ALREADY_EXISTS adb uninstall com.your.app
Emulator not detected Verify adb devices, restart ADB
HMR not working Configure vite.config.ts with TAURI_DEV_HOST
Shell plugin URL error Use opener plugin instead (openUrl())
Google OAuth fails Google blocks WebView; use system browser flow
Deep link not received Check scheme in tauri.conf.json, init plugin
Safe area CSS fails on Android env() not supported in WebView; use JS fallback
Windows APK build symlink error Enable Developer Mode or copy .so files manually

See references/testing.md for detailed troubleshooting.

Resources