Distribucion y Empaquetado
Distribucion y Empaquetado
Compilar la app
npm run tauri build
Esto compila el frontend, compila Rust en modo release y genera los instaladores. El resultado esta en src-tauri/target/release/bundle/.
Separar compilacion y empaquetado
# Solo compilar, sin empaquetar
npm run tauri build -- --no-bundle
# Empaquetar despues
npm run tauri bundle -- --bundles app,dmg
Formatos por plataforma
Linux
| Formato | Descripcion |
|---|---|
| AppImage | Ejecutable portable, no requiere instalacion |
| .deb | Paquete Debian/Ubuntu |
| .rpm | Paquete Fedora/RHEL |
macOS
| Formato | Descripcion |
|---|---|
| .app | Bundle de aplicacion |
| .dmg | Imagen de disco para distribucion |
Windows
| Formato | Descripcion |
|---|---|
| .msi | Windows Installer |
| .exe (NSIS) | Instalador ejecutable |
Movil
| Plataforma | Formato |
|---|---|
| Android | .apk / .aab (para Play Store) |
| iOS | .ipa (para App Store) |
Versionado
Define la version en tauri.conf.json:
{
"version": "1.0.0"
}
Si no esta definido, Tauri usa la version de Cargo.toml.
Firma de codigo
macOS
Requiere un Apple Developer ID para distribuir fuera del App Store. La notarizacion es obligatoria.
Variables de entorno necesarias:
export APPLE_CERTIFICATE="base64_del_certificado"
export APPLE_CERTIFICATE_PASSWORD="password"
export APPLE_SIGNING_IDENTITY="Developer ID Application: Tu Nombre"
export APPLE_ID="[email protected]"
export APPLE_PASSWORD="app-specific-password"
export APPLE_TEAM_ID="XXXXXXXXXX"
Windows
Firma con certificado Authenticode:
export TAURI_SIGNING_PRIVATE_KEY="contenido_de_la_key"
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="password"
Linux
No requiere firma obligatoria, pero es recomendable para repositorios oficiales.
Actualizaciones automaticas
Usa el plugin updater:
cargo add tauri-plugin-updater
npm install @tauri-apps/plugin-updater
Configuracion en tauri.conf.json:
{
"plugins": {
"updater": {
"endpoints": ["https://releases.miapp.com/{{target}}/{{arch}}/{{current_version}}"],
"pubkey": "tu_clave_publica"
}
}
}
Verificar actualizaciones:
import { check } from '@tauri-apps/plugin-updater';
const update = await check();
if (update) {
await update.downloadAndInstall();
}
Distribucion en tiendas
Microsoft Store
Genera un paquete .msix y sube a Partner Center.
App Store (macOS)
Requiere Xcode, Apple Developer Program y provisioning profiles.
Google Play
Genera .aab con:
npm run tauri android build -- --aab
App Store (iOS)
Compila y archiva desde Xcode.
Iconos
Genera iconos para todas las plataformas desde una imagen fuente:
npm run tauri icon path/to/icon.png
Requiere una imagen de al menos 1024x1024px. Genera automaticamente todos los tamanos necesarios para cada plataforma.
CI/CD
Para builds automaticos, Tauri ofrece GitHub Actions:
# .github/workflows/release.yml
name: Release
on:
push:
tags: ['v*']
jobs:
release:
strategy:
matrix:
platform: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: dtolnay/rust-toolchain@stable
- run: npm install
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Resumen
npm run tauri buildcompila y empaqueta para tu plataforma- Formatos nativos: AppImage/deb/rpm (Linux), app/dmg (macOS), msi/exe (Windows)
- Firma de codigo obligatoria en macOS, recomendada en Windows
- Plugin updater para actualizaciones automaticas con verificacion de firma
npm run tauri icongenera iconos para todas las plataformas- GitHub Actions para CI/CD multiplataforma