Saltar al contenido

Configuración

El objeto de configuración de Tauri. Se lee desde un archivo donde puedes definir tus activos de frontend, configurar el empaquetador y definir un icono para la bandeja de sistema.

El archivo de configuración es generado por el comando tauri init que se encuentra en el directorio fuente de tu aplicación Tauri (src-tauri).

Una vez generado, puedes modificarlo a tu gusto para personalizar tu aplicación Tauri.

Por defecto, la configuración se define como un archivo JSON llamado tauri.conf.json.

Tauri también admite archivos JSON5 y TOML mediante las características de Cargo config-json5 y config-toml, respectivamente. El nombre del archivo JSON5 debe ser tauri.conf.json o tauri.conf.json5. El nombre del archivo TOML es Tauri.toml.

Además del archivo de configuración por defecto, Tauri puede leer una configuración específica de la plataforma desde tauri.linux.conf.json, tauri.windows.conf.json, tauri.macos.conf.json, tauri.android.conf.json y tauri.ios.conf.json (o Tauri.linux.toml, Tauri.windows.toml, Tauri.macos.toml, Tauri.android.toml y Tauri.ios.toml si se usa el formato Tauri.toml), el cual se fusiona con el objeto de configuración principal.

La configuración se compone de los siguientes objetos:

  • app: La configuración de Tauri
  • build: La configuración de compilación
  • bundle: Las configuraciones del paquete
  • plugins: La configuración de plugins

Ejemplo de archivo tauri.conf.json:

{
"productName": "tauri-app",
"version": "0.1.0",
"build": {
"beforeBuildCommand": "",
"beforeDevCommand": "",
"devUrl": "http://localhost:3000",
"frontendDist": "../dist"
},
"app": {
"security": {
"csp": null
},
"windows": [
{
"fullscreen": false,
"height": 600,
"resizable": true,
"title": "Tauri App",
"width": 800
}
]
},
"bundle": {},
"plugins": {}
}

Object Properties:

  • app
  • build
  • bundle
  • identifier (required)
  • mainBinaryName
  • plugins
  • productName
  • version

AppConfig

La configuración de App.

Por defecto
{
"enableGTKAppId": false,
"macOSPrivateApi": false,
"security": {
"assetProtocol": {
"enable": false,
"scope": []
},
"capabilities": [],
"dangerousDisableAssetCspModification": false,
"freezePrototype": false,
"pattern": {
"use": "brownfield"
}
},
"windows": [],
"withGlobalTauri": false
}

BuildConfig

La configuración de build.

Por defecto
{
"additionalWatchFolders": [],
"removeUnusedCommands": false,
"windows": {
"staticVCRuntime": true
}
}

BundleConfig

La configuración del empaquetador (bundler).

Por defecto
{
"active": false,
"android": {
"autoIncrementVersionCode": false,
"minSdkVersion": 24
},
"createUpdaterArtifacts": false,
"iOS": {
"minimumSystemVersion": "14.0"
},
"icon": [],
"linux": {
"appimage": {
"bundleMediaFramework": false,
"files": {}
},
"deb": {
"files": {}
},
"rpm": {
"epoch": 0,
"files": {},
"release": "1"
}
},
"macOS": {
"dmg": {
"appPosition": {
"x": 180,
"y": 170
},
"applicationFolderPosition": {
"x": 480,
"y": 170
},
"windowSize": {
"height": 400,
"width": 660
}
},
"files": {},
"hardenedRuntime": true,
"minimumSystemVersion": "10.13"
},
"targets": "all",
"useLocalToolsDir": false,
"windows": {
"allowDowngrades": true,
"bundleVCRuntime": false,
"certificateThumbprint": null,
"digestAlgorithm": null,
"minimumWebview2Version": null,
"nsis": null,
"signCommand": null,
"timestampUrl": null,
"tsp": false,
"webviewInstallMode": {
"silent": true,
"type": "downloadBootstrapper"
},
"wix": null
}
}

string

El identificador de la aplicación en notación de nombre de dominio inverso (p. ej. com.tauri.example). Esta cadena debe ser única entre las aplicaciones, ya que se utiliza en configuraciones del sistema como el ID del paquete y la ruta al directorio de datos de webview. Esta cadena solo debe contener caracteres alfanuméricos (A-Z, a-z, y 0-9), guiones (-), y puntos (.).

string | null

Sobrescribe el nombre del archivo binario principal de la aplicación.

Por defecto, Tauri usa el binario generado por cargo, al configurar esto, renombraremos ese binario en el comando tauri build de tauri-cli, y apuntaremos tauri bundle hacia él

Si es posible, cambia el nombre del paquete o establece el campo name en su lugar, y si eso no es suficiente y estás usando nightly, considera usar la característica different-binary-name en su lugar

Nota: esta configuración no debe incluir la extensión binaria (p. ej. .exe), la añadiremos por ti

PluginConfig

La configuración de los plugins.

Default: {}

string | null patrón de ^[^/\:*?"<>|]+$

Nombre de la aplicación.

string | null

Versión de la app. Es un número de versión semver o una ruta a un archivo package.json que contiene el campo version.

Si se elimina, se utiliza el número de versión de Cargo.toml. Se recomienda gestionar el versionado de la app en la configuración de Tauri.

  • macOS: Se traduce a la propiedad CFBundleShortVersionString del paquete y se usa como la CFBundleVersion por defecto. Puedes establecer una versión de paquete específica usando bundle > macOS > bundleVersion.
  • iOS: Se traduce a la propiedad CFBundleShortVersionString del paquete y se usa como la CFBundleVersion por defecto. Puedes establecer una versión de paquete específica usando bundle > iOS > bundleVersion. El comando de CLI tauri ios build tiene una opción --build-number <numero> que te permite adjuntar un número de compilación a la versión de la app.
  • Android: Por defecto se usa la versión 1.0. Puedes establecer un código de versión usando bundle > android > versionCode.

Por defecto se usa la versión 1.0 en Android.

Configuración general para el objetivo de Android.

Object Properties:

  • autoIncrementVersionCode
  • debugApplicationIdSuffix
  • minSdkVersion
  • versionCode

boolean

Si se debe incrementar automáticamente el versionCode en cada compilación.

  • Si es true, el generador intentará leer el último versionCode desde tauri.properties e incrementarlo en 1 para cada compilación.
  • Si es false o no se establece, recurre a version_code o a la lógica derivada de semver.

Ten en cuenta que para usar esta característica, debes eliminar /tauri.properties de src-tauri/gen/android/app/.gitignore para que el versionCode actual se guarde en el repositorio.

string | null

Sufijo del ID de aplicación para adjuntar a las compilaciones de depuración (debug). Esto permite instalar versiones de depuración y de lanzamiento (release) lado a lado en el mismo dispositivo. Ejemplo: “.debug” hará que las compilaciones de depuración usen “com.example.app.debug” como ID de aplicación.

integer formateado como uint32

El nivel mínimo de API requerido para que la aplicación se ejecute. El sistema Android evitará que el usuario instale la aplicación si el nivel de API del sistema es inferior al valor especificado.

Default: 24

integer | null máximo de 2100000000, mínimo de 1, formateado como uint32

El código de versión de la aplicación. Está limitado a 2,100,000,000 según los requisitos de Google Play Store.

Por defecto usamos tu versión configurada y realizamos la siguiente operación matemática: versionCode = version.major * 1000000 + version.minor * 1000 + version.patch

One of the following:

Acciones intent de Android.

El objeto de configuración de App.

Ver más: <https://v2.tauri.app/reference/config/#appconfig>

Object Properties:

  • enableGTKAppId
  • macOSPrivateApi
  • security
  • trayIcon
  • windows
  • withGlobalTauri

boolean

Si se establece en true, "identifier" se configurará como el ID de la app de GTK (en sistemas que usen GTK).

boolean

Configuración de API privada de macOS. Habilita la API de fondo transparente y establece la preferencia fullScreenEnabled en true.

SecurityConfig

Configuración de seguridad.

Por defecto
{
"assetProtocol": {
"enable": false,
"scope": []
},
"capabilities": [],
"dangerousDisableAssetCspModification": false,
"freezePrototype": false,
"pattern": {
"use": "brownfield"
}
}

TrayIconConfig | null

Configuración para el icono de la bandeja de sistema de la aplicación.

WindowConfig[]

La configuración de ventanas de la aplicación.

Para crear una ventana al iniciar la aplicación

{
"app": {
"windows": [
{ "width": 800, "height": 600 }
]
}
}

Si no se especifica, la etiqueta de la ventana (su identificador) por defecto es “main”, puedes usar esta etiqueta para obtener la ventana a través de app.get_webview_window en Rust o WebviewWindow.getByLabel en JavaScript

Al trabajar con múltiples ventanas, cada ventana necesitará una etiqueta única

{
"app": {
"windows": [
{ "label": "main", "width": 800, "height": 600 },
{ "label": "secondary", "width": 800, "height": 600 }
]
}
}

También puedes establecer create en false y usar esta configuración a través de las API de Rust

{
"app": {
"windows": [
{ "create": false, "width": 800, "height": 600 }
]
}
}

y úsala así

tauri::Builder::default()
.setup(|app| {
tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;
Ok(())
});

Default: []

boolean

Si debemos inyectar la API de Tauri en window.__TAURI__ o no.

Configuración para paquetes AppImage.

Ver más: <https://v2.tauri.app/reference/config/#appimageconfig>

Object Properties:

  • bundleMediaFramework
  • files

boolean

Incluye dependencias adicionales de gstreamer necesarias para la reproducción de audio y video. Esto aumenta el tamaño del paquete en ~15-35MB dependiendo de tu sistema de compilación.

Los archivos a incluir en el binario AppImage.

Allows additional properties: string

Default: {}

Configuración para el protocolo personalizado de activos (asset protocol).

Ver más: <https://v2.tauri.app/reference/config/#assetprotocolconfig>

Object Properties:

  • enable
  • scope

boolean

Habilita el protocolo de activos (asset protocol).

FsScope

El alcance de acceso (access scope) para el protocolo de activos.

Default: []

string

Una extensión para [FileAssociation].

Un . inicial se elimina automáticamente.

One of the following:

  • "disabled" Una política donde la limitación en segundo plano (background throttling) está deshabilitada
  • "suspend" Una política donde una vista web que no está en una ventana suspende completamente las tareas. Este suele ser el comportamiento por defecto en caso de que no se establezca ninguna política.
  • "throttle" Una política donde una vista web que no está en una ventana limita el procesamiento, pero no suspende completamente las tareas.

Política de limitación en segundo plano (background throttling policy).

Any of the following:

  • string Ejecuta el script dado con las opciones por defecto.
  • Ejecuta el script dado con opciones personalizadas. Propiedades del objeto: - cwd - script (requerido) - wait ##### cwd string | null El directorio de trabajo actual. ##### script string El script a ejecutar. ##### wait boolean Si tauri dev debe esperar a que el comando termine o no. Por defecto es false.

Describe el comando de shell a ejecutar antes de tauri dev.

El objeto de configuración de Build.

Ver más: <https://v2.tauri.app/reference/config/#buildconfig>

Object Properties:

  • additionalWatchFolders
  • beforeBuildCommand
  • beforeBundleCommand
  • beforeDevCommand
  • devUrl
  • features
  • frontendDist
  • removeUnusedCommands
  • runner
  • windows

string[]

Rutas adicionales a vigilar en busca de cambios al ejecutar tauri dev.

Default: []

HookCommand | null

Un comando de shell a ejecutar antes de que comience tauri build.

Las variables de entorno TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE y TAURI_ENV_DEBUG se establecen si realizas compilación condicional.

HookCommand | null

Un comando de shell a ejecutar antes de que comience la fase de empaquetado en tauri build.

Las variables de entorno TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE y TAURI_ENV_DEBUG se establecen si realizas compilación condicional.

BeforeDevCommand | null

Un comando de shell a ejecutar antes de que comience tauri dev.

Las variables de entorno TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE y TAURI_ENV_DEBUG se establecen si realizas compilación condicional.

string | null formateado como uri

La URL a cargar en desarrollo.

Normalmente es una URL hacia un servidor de desarrollo, que sirve los activos de tu aplicación con recarga en caliente (hot-reload) y HMR. La mayoría de los empaquetadores de JavaScript modernos como Vite proporcionan una forma de iniciar un servidor de desarrollo por defecto.

Si no tienes un servidor de desarrollo o no deseas usar uno, ignora esta opción y usa frontendDist apuntando a un directorio de activos web, y la CLI de Tauri ejecutará su servidor de desarrollo integrado y proporcionará una experiencia sencilla de recarga en caliente (hot-reload).

string[] | null

Características (features) pasadas a los comandos de cargo.

FrontendDist | null

La ruta a los activos de la aplicación (normalmente la carpeta dist de tu empaquetador de javascript) o una URL que puede ser un protocolo personalizado registrado en la app de tauri (por ejemplo: myprotocol://) o una URL remota (por ejemplo: https://site.com/app).

Cuando se proporciona una ruta relativa al archivo de configuración, se lee de forma recursiva y todos los archivos se incrustan en el binario de la aplicación. Tauri luego busca un index.html y lo sirve como punto de entrada por defecto para tu aplicación.

También puedes proporcionar una lista de rutas a incrustar, lo que permite un control granular sobre qué archivos se agregan al binario. En este caso, todos los archivos se agregan a la raíz y debes referenciarlos de esa manera en tus archivos HTML.

Cuando se proporciona una URL, la aplicación no tendrá activos empaquetados y la aplicación cargará esa URL por defecto.

boolean

Intenta eliminar comandos no utilizados registrados desde plugins basados en la lista ACL durante tauri build, la forma en que funciona es que tauri-cli leerá esto y configurará las variables de entorno para el script de compilación y las macros, y tratarán de obtener todos los comandos permitidos y eliminar el resto

Nota:

  • Esto no tendrá en cuenta las ACL añadidas dinámicamente cuando usas características del flag de características dynamic-acl (actualmente habilitado por defecto), así que asegúrate de comprobarlo cuando uses esto
  • Esta característica requiere tauri-plugin 2.1 y tauri 2.4

RunnerConfig | null

El binario utilizado para compilar y ejecutar la aplicación.

WindowsBuildConfig

Configuración de compilación específica para Windows.

Por defecto
{
"staticVCRuntime": true
}

Configuración para tauri-bundler.

Ver más: <https://v2.tauri.app/reference/config/#bundleconfig>

Object Properties:

  • active
  • android
  • category
  • copyright
  • createUpdaterArtifacts
  • externalBin
  • fileAssociations
  • homepage
  • icon
  • iOS
  • license
  • licenseFile
  • linux
  • longDescription
  • macOS
  • publisher
  • resources
  • shortDescription
  • targets
  • useLocalToolsDir
  • windows

boolean

Si Tauri debe empaquetar tu aplicación o simplemente generar el ejecutable.

AndroidConfig

Configuración para Android.

Por defecto
{
"autoIncrementVersionCode": false,
"minSdkVersion": 24
}

string | null

El tipo de aplicación.

Debe ser uno de los siguientes: Business, DeveloperTool, Education, Entertainment, Finance, Game, ActionGame, AdventureGame, ArcadeGame, BoardGame, CardGame, CasinoGame, DiceGame, EducationalGame, FamilyGame, KidsGame, MusicGame, PuzzleGame, RacingGame, RolePlayingGame, SimulationGame, SportsGame, StrategyGame, TriviaGame, WordGame, GraphicsAndDesign, HealthcareAndFitness, Lifestyle, Medical, Music, News, Photography, Productivity, Reference, SocialNetworking, Sports, Travel, Utility, Video, Weather.

string | null

Una cadena de derechos de autor (copyright) asociada a tu aplicación.

Actualizador

Generar o no actualizadores y sus firmas

string[] | null

Una lista de rutas —ya sean absolutas o relativas— a binarios que se incluirán con tu aplicación.

Ten en cuenta que Tauri buscará binarios específicos del sistema siguiendo el patrón “nombre-del-binario{-target-triple}{.extension-del-sistema}”.

Por ejemplo, para el binario externo “my-binary”, Tauri busca:

  • “my-binary-x86_64-pc-windows-msvc.exe” para Windows
  • “my-binary-x86_64-apple-darwin” para macOS
  • “my-binary-x86_64-unknown-linux-gnu” para Linux

así que no olvides proporcionar binarios para todas las plataformas objetivo.

FileAssociation[] | null

Tipos de archivo a asociar con la aplicación.

string | null

Una URL a la página de inicio de tu aplicación. Si no se establece, recurrirá a la homepage definida en Cargo.toml.

Objetivos de paquete admitidos: deb, rpm, nsis y msi.

string[]

Los iconos de la app

Default: []

IosConfig

Configuración para iOS.

Por defecto
{
"minimumSystemVersion": "14.0"
}

string | null

El identificador de licencia del paquete que se incluirá en los paquetes correspondientes. Si no se establece, toma por defecto la licencia del archivo Cargo.toml.

string | null

La ruta al archivo de licencia que se incluirá en los paquetes correspondientes.

LinuxConfig

Configuración para los paquetes de Linux.

Por defecto
{
"appimage": {
"bundleMediaFramework": false,
"files": {}
},
"deb": {
"files": {}
},
"rpm": {
"epoch": 0,
"files": {},
"release": "1"
}
}

string | null

Una descripción más larga y multilínea de la aplicación.

MacConfig

Configuración para los paquetes de macOS.

Por defecto
{
"dmg": {
"appPosition": {
"x": 180,
"y": 170
},
"applicationFolderPosition": {
"x": 480,
"y": 170
},
"windowSize": {
"height": 400,
"width": 660
}
},
"files": {},
"hardenedRuntime": true,
"minimumSystemVersion": "10.13"
}

string | null

El editor (publisher) de la aplicación. Por defecto toma el segundo elemento en la cadena de identificador.

Actualmente se mapea a la propiedad Manufacturer del Instalador de Windows y al campo Maintainer de los paquetes debian si el Cargo.toml no tiene el campo authors.

BundleResources | null

Recursos de la app a empaquetar. Cada recurso es una ruta a un archivo o directorio. Se admiten patrones glob.

Para incluir una lista de archivos:

{
"bundle": {
"resources": [
"./path/to/some-file.txt",
"/absolute/path/to/textfile.txt",
"../relative/path/to/jsonfile.json",
"some-folder/",
"resources/**/*.md"
]
}
}

Los archivos empaquetados estarán en $RESOURCES/ conservando la estructura de directorios original, por ejemplo: ./path/to/some-file.txt -> $RESOURCE/path/to/some-file.txt

Para controlar minuciosamente dónde se copiarán los archivos, usa un mapa en su lugar

{
"bundle": {
"resources": {
"/absolute/path/to/textfile.txt": "resources/textfile.txt",
"relative/path/to/jsonfile.json": "resources/jsonfile.json",
"resources/": "",
"docs/**/*md": "website-docs/"
}
}
}

Ten en cuenta que al usar un patrón glob en este caso, no se conserva la estructura de directorios original, todo se copia directamente al directorio de destino

Ver más: <https://v2.tauri.app/develop/resources/>

string | null

Una breve descripción de tu aplicación.

BundleTarget

Los objetivos de paquete, actualmente admite [“deb”, “rpm”, “appimage”, “nsis”, “msi”, “app”, “dmg”] o “all”.

Default: "all"

boolean

Si se debe usar el directorio target del proyecto para almacenar en caché las herramientas de compilación (p. ej., WiX y NSIS) al compilar esta aplicación. Por defecto es false.

Si es true, las herramientas se almacenarán en caché en target/.tauri/. Si es false, las herramientas se almacenarán en caché en el directorio de caché específico de la plataforma del usuario actual.

Un ejemplo donde puede ser apropiado establecer esto en true es al compilar esta aplicación como un usuario del sistema Windows (p. ej., cargas de trabajo AWS EC2), porque el directorio de datos de la app del sistema Windows está restringido.

WindowsConfig

Configuración para los paquetes de Windows.

Por defecto
{
"allowDowngrades": true,
"bundleVCRuntime": false,
"certificateThumbprint": null,
"digestAlgorithm": null,
"minimumWebview2Version": null,
"nsis": null,
"signCommand": null,
"timestampUrl": null,
"tsp": false,
"webviewInstallMode": {
"silent": true,
"type": "downloadBootstrapper"
},
"wix": null
}

Any of the following:

  • string[] Una lista de rutas a incluir.
  • Un mapa de rutas de origen a destino. Permite propiedades adicionales: string

Definición para recursos del paquete (bundle resources). Puede ser una lista de rutas a incluir o un mapa de rutas de origen a destino.

Any of the following:

  • "all" Empaquetar todos los objetivos.
  • BundleType[] Una lista de objetivos de paquete.
  • BundleType Un único objetivo de paquete.

Objetivos a empaquetar. Cada valor no distingue entre mayúsculas y minúsculas.

One of the following:

  • "deb" El paquete debian (.deb).
  • "rpm" El paquete RPM (.rpm).
  • "appimage" El paquete AppImage (.appimage).
  • "msi" El paquete del Instalador de Microsoft (.msi).
  • "nsis" El paquete NSIS (.exe).
  • "app" El paquete de aplicación de macOS (.app).
  • "dmg" El paquete de Imagen de Disco de Apple (.dmg).

Un paquete referenciado por tauri-bundler.

One of the following:

  • "Editor" CFBundleTypeRole.Editor. Los archivos se pueden leer y editar.
  • "Viewer" CFBundleTypeRole.Viewer. Los archivos se pueden leer.
  • "Shell" CFBundleTypeRole.Shell
  • "QLGenerator" CFBundleTypeRole.QLGenerator
  • "None" CFBundleTypeRole.None

Solo macOS. Corresponde a CFBundleTypeRole

Un mecanismo de agrupación y límite que los desarrolladores pueden usar para aislar el acceso a la capa de IPC.

Controla el acceso detallado de las ventanas y webviews de la aplicación a los comandos del núcleo de Tauri, de la aplicación o de los plugins. Si una webview o su ventana no coinciden con ninguna capability, entonces no tiene acceso en absoluto a la capa de IPC.

Esto se puede hacer para crear grupos de ventanas, según su acceso requerido al sistema, lo que puede reducir el impacto de las vulnerabilidades del frontend en ventanas con menos privilegios. Las ventanas se pueden agregar a una capability por su nombre exacto (por ejemplo, main-window) o patrones glob como * o admin-*. Una ventana puede tener ninguna, una o múltiples capabilities asociadas.

{
"identifier": "main-user-files-write",
"description": "This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.",
"windows": [
"main"
],
"permissions": [
"core:default",
"dialog:open",
{
"identifier": "fs:allow-write-text-file",
"allow": [{ "path": "$HOME/test.txt" }]
},
],
"platforms": ["macOS","windows"]
}

Object Properties:

  • description
  • identifier (required)
  • local
  • permissions (required)
  • platforms
  • remote
  • webviews
  • windows

string

Descripción de lo que se pretende permitir con la capability en las ventanas asociadas.

Debe contener una descripción de lo que deben permitir los permisos agrupados.

Esta capability permite a la ventana main acceder a los comandos relacionados con la escritura en el filesystem y comandos de dialog para permitir el acceso mediante código a los archivos seleccionados por el usuario.

string

Identificador de la capability.

main-user-files-write

boolean

Si esta capability está habilitada para las URLs locales de la aplicación o no. Por defecto es true.

Default: true

PermissionEntry[] cada elemento debe ser único

Lista de permisos adjuntos a esta capability.

Debe incluir el nombre del plugin como prefijo en la forma ${plugin-name}:${permission-name}. Para los comandos implementados directamente en la propia aplicación solo se requiere ${permission-name}.

[
"core:default",
"shell:allow-open",
"dialog:open",
{
"identifier": "fs:allow-write-text-file",
"allow": [{ "path": "$HOME/test.txt" }]
}
]

Target[] | null

Limita a qué plataformas de destino se aplica esta capability.

Por defecto se dirigen a todas las plataformas.

["macOS","windows"]

CapabilityRemote | null

Configura URLs remotas que pueden usar los permisos de la capability.

Esta configuración es opcional y por defecto no está establecida, ya que nuestro caso de uso predeterminado es que el contenido se sirva desde nuestra aplicación local.

{
"urls": ["https://*.mydomain.dev"]
}

string[]

Lista de webviews que se ven afectadas por esta capability. Puede ser un patrón glob.

La capability estará habilitada en todas las webviews cuya etiqueta coincida con cualquiera de los patrones de esta lista, independientemente de si la etiqueta de la ventana de la webview coincide con un patrón en [Self::windows].

["sub-webview-one", "sub-webview-two"]

string[]

Lista de ventanas que se ven afectadas por esta capability. Puede ser un patrón glob.

Si una etiqueta de ventana coincide con cualquiera de los patrones de esta lista, la capability estará habilitada en todas las webviews de esa ventana, independientemente del valor de [Self::webviews].

En ventanas con múltiples webviews, prefiere especificar [Self::webviews] y omitir [Self::windows] para un control de acceso detallado.

["main"]

Any of the following:

  • Capability Una capacidad (capability) en línea.
  • string Referencia a un identificador de capacidad.

Una entrada de capacidad (capability) que puede ser una capacidad en línea o una referencia a una capacidad definida en su propio archivo.

Configuración para URLs remotas asociadas con la capability.

Object Properties:

  • urls (required)

string[]

Dominios remotos a los que se refiere esta capability utilizando el estándar URLPattern.

  • “https://*.mydomain.dev”: permite subdominios de mydomain.dev
  • https://mydomain.dev/api/*”: permite cualquier subruta de mydomain.dev/api

Any of the following:

  • string patrón de ^#?([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$ Cadena hexadecimal de color, por ejemplo: #fff, #ffffff, o #ffffffff.
  • integer formateado como uint8 | integer formateado como uint8 | integer formateado como uint8[] máximo de 3 elementos, mínimo de 3 elementos Arreglo de colores RGB. Cada valor tiene un mínimo de 0 y un máximo de 255.
  • integer formateado como uint8 | integer formateado como uint8 | integer formateado como uint8 | integer formateado como uint8[] máximo de 4 elementos, mínimo de 4 elementos Arreglo de colores RGBA. Cada valor tiene un mínimo de 0 y un máximo de 255.
  • Objeto de valores de color rojo, verde, azul y alfa. Cada valor tiene un mínimo de 0 y un máximo de 255. Propiedades del objeto: - alpha - blue (requerido) - green (requerido) - red (requerido) ##### alpha integer formateado como uint8 Por defecto: 255 ##### blue integer formateado como uint8 ##### green integer formateado como uint8 ##### red integer formateado como uint8

Any of the following:

  • string Toda la política CSP en una sola cadena de texto.
  • Un objeto que mapea una directiva con sus valores de fuentes como una lista de cadenas. Permite propiedades adicionales: CspDirectiveSources

Una definición de Content-Security-Policy. Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.

Any of the following:

  • string Una lista en línea de fuentes CSP. Igual que [Self::List], pero concatenada con un separador de espacio.
  • string[] Una lista de fuentes CSP. La colección se concatenará con un separador de espacio para la cadena CSP.

Una lista de fuentes de directivas de Content-Security-Policy. Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.

Any of the following:

  • string Una notación en cadena del script a ejecutar. “%1” será reemplazado con la ruta al binario que se va a firmar. Esta es una notación más simple para el comando. Tauri dividirá la cadena con ' ' y usará el primer elemento como el nombre del comando y el resto como argumentos. Si necesitas usar espacios en blanco en el comando o en los argumentos, usa la notación de objeto [Self::CommandWithOptions].
  • Una notación de objeto del comando. Esta es una notación más compleja para el comando pero te permite usar espacios en blanco en el comando y en los argumentos. Propiedades del objeto: - args (requerido) - cmd (requerido) ##### args string[] Los argumentos a pasar al comando. “%1” será reemplazado con la ruta al binario que se va a firmar. ##### cmd string El comando a ejecutar para firmar el binario.

Configuración del comando de firma personalizado.

Configuración para paquetes Debian (.deb).

Ver más: <https://v2.tauri.app/reference/config/#debconfig>

Object Properties:

  • changelog
  • conflicts
  • depends
  • desktopTemplate
  • files
  • postInstallScript
  • postRemoveScript
  • preInstallScript
  • preRemoveScript
  • priority
  • provides
  • recommends
  • replaces
  • section

string | null

Ruta del archivo Changelog sin comprimir, que se almacenará en /usr/share/doc/package-name/changelog.gz. Ver <https://www.debian.org/doc/debian-policy/ch-docs.html#changelog-files-and-release-notes>

string[] | null

La lista de conflictos de paquetes.

string[] | null

La lista de dependencias deb en las que confía tu aplicación.

string | null

Ruta a una plantilla personalizada de Handlebars para el archivo desktop.

Variables disponibles: categories, comment (opcional), exec, icon y name.

Los archivos a incluir en el paquete.

Allows additional properties: string

Default: {}

string | null

Ruta al script que se ejecutará después de que el paquete sea desempaquetado. Ver <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>

string | null

Ruta al script que se ejecutará después de que el paquete sea eliminado. Ver <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>

string | null

Ruta al script que se ejecutará antes de que el paquete sea desempaquetado. Ver <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>

string | null

Ruta al script que se ejecutará antes de que el paquete sea eliminado. Ver <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>

string | null

Cambia la prioridad del paquete Debian. Por defecto, se establece en optional. Las prioridades reconocidas hasta el momento son: required, important, standard, optional, extra

string[] | null

La lista de dependencias que proporciona el paquete.

string[] | null

La lista de dependencias deb que recomienda tu aplicación.

string[] | null

La lista de reemplazos de paquetes.

string | null

Define la sección en el archivo de control de Debian. Ver: https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections

Any of the following:

  • boolean Si es true, deshabilita toda modificación de CSP. false es el valor por defecto y configura Tauri para controlar la CSP.
  • string[] Deshabilita la lista dada de modificaciones de directivas CSP.

Los valores posibles para la opción de configuración dangerous_disable_asset_csp_modification.

Configuración para paquetes de Imagen de Disco de Apple (.dmg).

Ver más: <https://v2.tauri.app/reference/config/#dmgconfig>

Object Properties:

  • applicationFolderPosition
  • appPosition
  • background
  • windowPosition
  • windowSize

Position

Posición de la carpeta de aplicaciones en la ventana.

Por defecto
{
"x": 480,
"y": 170
}

Position

Posición del archivo de la app en la ventana.

Por defecto
{
"x": 180,
"y": 170
}

string | null

Imagen a usar como fondo en el archivo dmg. Formatos aceptados: png/jpg/gif.

Position | null

Posición de la ventana del volumen en la pantalla.

Size

Tamaño de la ventana del volumen.

Por defecto
{
"height": 400,
"width": 660
}

La definición de tipo exportada. Se mapea a una entrada UTExportedTypeDeclarations en macOS.

Object Properties:

  • conformsTo
  • identifier (required)

string[] | null

Los tipos a los que se ajusta este tipo. Se mapea a UTTypeConformsTo.

Ejemplos son public.data, public.image, public.json y public.database.

string

El identificador único para el tipo exportado. Se mapea a UTTypeIdentifier.

Asociación de archivos

Object Properties:

  • androidIntentActionFilters
  • contentTypes
  • description
  • exportedType
  • ext (required)
  • mimeType
  • name
  • rank
  • role

AndroidIntentAction[] | null

Filtros de acción Intent para esta asociación de archivos.

Por defecto se utilizan todos los filtros.

string[] | null

Declara soporte para un archivo con el tipo de contenido dado. Se mapea a LSItemContentTypes en macOS.

Esto permite admitir cualquier formato de archivo declarado por otra aplicación que se ajuste a este tipo. La declaración de nuevos tipos se puede hacer con [Self::exported_type] y el enlace a ciertos tipos de contenido se realiza mediante [ExportedFileAssociation::conforms_to].

string | null

La descripción de la asociación. Solo Windows. Se muestra en la columna Tipo en el Explorador de Windows.

ExportedFileAssociation | null

La definición de tipo exportada. Se mapea a una entrada UTExportedTypeDeclarations en macOS.

Debes definir esto si el archivo asociado es un tipo de archivo personalizado definido por tu aplicación.

AssociationExt[]

Extensiones de archivo a asociar con esta app. p. ej. ‘png’

string | null

El tipo MIME (mime-type) de la asociación, p. ej. 'image/png' o 'text/plain'.

  • Linux: escrito como MimeType= en el archivo .desktop.
  • macOS / iOS: agregado como public.mime-type en el diccionario UTTypeTagSpecification de la entrada UTExportedTypeDeclarations en Info.plist.
  • Android: utilizado como android:mimeType en el elemento <data> de un <intent-filter> en AndroidManifest.xml.

string | null

El nombre. Se mapea a CFBundleTypeName en macOS. Por defecto es ext[0]

HandlerRank

La clasificación de esta app entre las aplicaciones que se declaran como editoras o visoras del tipo de archivo dado. Se mapea a LSHandlerRank en macOS.

Default: "Default"

BundleTypeRole

El rol de la app con respecto al tipo. Se mapea a CFBundleTypeRole en macOS.

Default: "Editor"

Any of the following:

  • string formateado como uri Una URL externa que se debe usar como la URL de aplicación por defecto. En este caso no se incrustan activos en la app.
  • string Ruta a un directorio que contiene los activos dist del frontend.
  • string[] Un arreglo de archivos a incrustar en la app.

Define la URL o los activos a incrustar en la aplicación.

Any of the following:

  • string[] Una lista de rutas permitidas por este alcance (scope).
  • Una configuración completa de alcance (scope). Propiedades del objeto: - allow - deny - requireLiteralLeadingDot ##### allow string[] Una lista de rutas permitidas por este alcance (scope). Por defecto: [] ##### deny string[] Una lista de rutas no permitidas por este alcance (scope). Esto tiene prioridad sobre la lista [Self::Scope::allow]. Por defecto: [] ##### requireLiteralLeadingDot boolean | null Si las rutas que contienen componentes que comienzan con un . requerirán que ese . aparezca literalmente en el patrón o no; *, ?, **, o [...] no coincidirán. Esto es útil porque convencionalmente se considera que dichos archivos están ocultos en sistemas Unix y podría ser deseable omitirlos al listar archivos. Por defecto es true en sistemas Unix y false en Windows

Definición del alcance (scope) del protocolo. Es una lista de patrones glob que restringen el acceso a la API desde la webview.

Cada patrón puede comenzar con una variable que se resuelve a un directorio base del sistema. Las variables son: $AUDIO, $CACHE, $CONFIG, $DATA, $LOCALDATA, $DESKTOP, $DOCUMENT, $DOWNLOAD, $EXE, $FONT, $HOME, $PICTURE, $PUBLIC, $RUNTIME, $TEMPLATE, $VIDEO, $RESOURCE, $TEMP, $APPCONFIG, $APPDATA, $APPLOCALDATA, $APPCACHE, $APPLOG.

One of the following:

  • "Default" LSHandlerRank.Default. Esta app es un abridor de archivos de este tipo; este valor también se usa si no se especifica ninguna clasificación (rank).
  • "Owner" LSHandlerRank.Owner. Esta app es el creador principal de archivos de este tipo.
  • "Alternate" LSHandlerRank.Alternate. Esta app es un visor secundario de archivos de este tipo.
  • "None" LSHandlerRank.None. Esta app nunca es seleccionada para abrir archivos de este tipo, pero acepta que se le suelten archivos de este tipo.

Corresponde a LSHandlerRank

Una estructura donde las claves son nombres específicos de encabezados HTTP.

Si los valores para esas claves están definidos, se enviarán como parte de un mensaje de respuesta. Esto no incluye mensajes de error ni mensajes de IPC

{
//..
app:{
//..
security: {
headers: {
"Cross-Origin-Opener-Policy": "same-origin",
"Cross-Origin-Embedder-Policy": "require-corp",
"Timing-Allow-Origin": [
"https://developer.mozilla.org",
"https://example.com",
],
"Access-Control-Expose-Headers": "Tauri-Custom-Header",
"Tauri-Custom-Header": {
"key1": "'value1' 'value2'",
"key2": "'value3'"
}
},
csp: "default-src 'self'; connect-src ipc: http://ipc.localhost",
}
//..
}
//..
}

En este ejemplo Cross-Origin-Opener-Policy y Cross-Origin-Embedder-Policy están configurados para permitir el uso de SharedArrayBuffer. El resultado es que esos encabezados luego se configuran en cada respuesta enviada a través de la función get_response en crates/tauri/src/protocol/tauri.rs. El encabezado Content-Security-Policy se define por separado, porque también se maneja por separado.

Para el ejemplo helloworld, esta configuración se traduce en esos encabezados de respuesta:

access-control-allow-origin: http://tauri.localhost
access-control-expose-headers: Tauri-Custom-Header
content-security-policy: default-src 'self'; connect-src ipc: http://ipc.localhost; script-src 'self' 'sha256-Wjjrs6qinmnr+tOry8x8PPwI77eGpUFR3EEGZktjJNs='
content-type: text/html
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
tauri-custom-header: key1 'value1' 'value2'; key2 'value3'
timing-allow-origin: https://developer.mozilla.org, https://example.com

Dado que los valores de encabezado resultantes son siempre de tipo cadena ('string-like'). Por lo que dependiendo del tipo de datos que sea HeaderSource, deben ser convertidos.

  • String(JS/Rust): se mantienen igual para el valor de encabezado resultante
  • Array(JS)/Vec\<String\>(Rust): Los elementos se unen mediante “, “ para el valor de encabezado resultante
  • Object(JS)/ Hashmap\<String,String\>(Rust): Los elementos se componen a partir de: clave + espacio + valor. Luego los elementos se unen mediante “; “ para el valor de encabezado resultante

Object Properties:

  • Access-Control-Allow-Credentials
  • Access-Control-Allow-Headers
  • Access-Control-Allow-Methods
  • Access-Control-Expose-Headers
  • Access-Control-Max-Age
  • Cross-Origin-Embedder-Policy
  • Cross-Origin-Opener-Policy
  • Cross-Origin-Resource-Policy
  • Permissions-Policy
  • Service-Worker-Allowed
  • Tauri-Custom-Header
  • Timing-Allow-Origin
  • X-Content-Type-Options

HeaderSource | null

El encabezado de respuesta Access-Control-Allow-Credentials le indica a los navegadores si el servidor permite que las solicitudes HTTP entre orígenes (cross-origin) incluyan credenciales.

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials>

HeaderSource | null

El encabezado de respuesta Access-Control-Allow-Headers se utiliza en respuesta a una solicitud previa (preflight request) que incluye Access-Control-Request-Headers para indicar qué encabezados HTTP se pueden usar durante la solicitud real.

Este encabezado es obligatorio si la solicitud contiene un encabezado Access-Control-Request-Headers.

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers>

HeaderSource | null

El encabezado de respuesta Access-Control-Allow-Methods especifica uno o más métodos permitidos al acceder a un recurso en respuesta a una solicitud previa (preflight request).

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods>

HeaderSource | null

El encabezado de respuesta Access-Control-Expose-Headers permite a un servidor indicar qué encabezados de respuesta deben ponerse a disposición de los scripts que se ejecutan en el navegador, en respuesta a una solicitud entre orígenes (cross-origin).

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers>

HeaderSource | null

El encabezado de respuesta Access-Control-Max-Age indica cuánto tiempo los resultados de una solicitud previa (preflight request) (es decir, la información contenida en los encabezados Access-Control-Allow-Methods y Access-Control-Allow-Headers) se pueden almacenar en caché.

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age>

HeaderSource | null

El encabezado de respuesta HTTP Cross-Origin-Embedder-Policy (COEP) configura la incrustación de recursos entre orígenes en el documento.

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy>

HeaderSource | null

El encabezado de respuesta HTTP Cross-Origin-Opener-Policy (COOP) te permite garantizar que un documento de nivel superior no comparta un grupo de contexto de navegación con documentos de otros orígenes. COOP aislará por procesos tu documento y atacantes potenciales no podrán acceder a tu objeto global si lo abrieran en una ventana emergente (popup), lo que previene un conjunto de ataques entre orígenes llamados XS-Leaks.

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy>

HeaderSource | null

El encabezado de respuesta HTTP Cross-Origin-Resource-Policy transmite el deseo de que el navegador bloquee las solicitudes no-cors de diferentes orígenes/sitios al recurso dado.

Ver <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy>

HeaderSource | null

La cabecera HTTP Permissions-Policy proporciona un mecanismo para permitir y denegar el uso de características del navegador en un documento o dentro de cualquier elemento <iframe> en el documento.

Consulta <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy>

HeaderSource | null

La cabecera de respuesta HTTP Service-Worker-Allowed se utiliza para ampliar la restricción de ruta para el alcance predeterminado de un service worker.

Por defecto, el alcance para el registro de un service worker es el directorio donde se encuentra el script del service worker. Por ejemplo, si el script sw.js se encuentra en /js/sw.js, solo puede controlar las URLs bajo /js/ por defecto. Los servidores pueden usar la cabecera Service-Worker-Allowed para permitir que un service worker controle URLs fuera de su propio directorio.

Consulta <https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Service-Worker-Allowed>

HeaderSource | null

Un campo de cabecera personalizado Tauri-Custom-Header, no lo uses. Recuerda configurar Access-Control-Expose-Headers en consecuencia

NOT INTENDED FOR PRODUCTION USE

HeaderSource | null

La cabecera de respuesta Timing-Allow-Origin especifica los orígenes a los que se les permite ver los valores de los atributos recuperados a través de las funciones de la Resource Timing API, que de otro modo serian reportados como cero debido a restricciones de origen cruzado (cross-origin).

Consulta <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Timing-Allow-Origin>

HeaderSource | null

La cabecera HTTP de respuesta X-Content-Type-Options es un marcador utilizado por el servidor para indicar que los tipos MIME anunciados en las cabeceras Content-Type deben seguirse y no modificarse. La cabecera te permite evitar el rastreo de tipos MIME (MIME type sniffing) al indicar que los tipos MIME están configurados deliberadamente.

Consulta <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options>

Any of the following:

  • Versión string en texto del valor de la cabecera
  • Versión en lista string[] del valor de la cabecera. Los elementos se unen por “,” para el valor real de la cabecera
  • Equivalente en (Rust struct | Json | JavaScript Object) del valor de la cabecera. Los elementos se componen de: clave + espacio + valor. Los elementos se unen luego por “;” para el valor real de la cabecera Permite propiedades adicionales: string

definición de una fuente de encabezado

El valor del encabezado para un nombre de encabezado

Any of the following:

  • string Ejecuta el script dado con las opciones por defecto.
  • Ejecuta el script dado con opciones personalizadas. Propiedades del objeto: - cwd - script (requerido) ##### cwd string | null El directorio de trabajo actual. ##### script string El script a ejecutar.

Describe un comando de shell que se ejecutará cuando se active un hook de la CLI.

string

Configuración general para el objetivo de iOS.

Object Properties:

  • bundleVersion
  • developmentTeam
  • frameworks
  • infoPlist
  • minimumSystemVersion
  • template

string | null

La versión de la compilación que identifica una iteración del paquete.

Se traduce a la propiedad CFBundleVersion del paquete.

string | null

El equipo de desarrollo. Este valor es requerido para el desarrollo en iOS porque se fuerza la firma de código. La variable de entorno APPLE_DEVELOPMENT_TEAM se puede configurar para sobrescribirlo.

string[] | null

Una lista de cadenas que indican los frameworks de iOS que deben empaquetarse con la aplicación.

Ten en cuenta que debes volver a crear el proyecto de iOS para que se apliquen los cambios.

string | null

Ruta a un archivo Info.plist para fusionar con el Info.plist por defecto.

Ten en cuenta que Tauri también busca un archivo Info.plist e Info.ios.plist en el mismo directorio que el archivo de configuración de Tauri.

string

Una cadena de versión que indica la versión mínima de iOS que soporta la aplicación empaquetada. Por defecto es 13.0.

Se mapea al valor IPHONEOS_DEPLOYMENT_TARGET.

Default: "14.0"

string | null

Una plantilla project.yml personalizada de XcodeGen para usar.

Configuración para paquetes de Linux.

Ver más: <https://v2.tauri.app/reference/config/#linuxconfig>

Object Properties:

  • appimage
  • deb
  • rpm

AppImageConfig

Configuración para el paquete AppImage.

Por defecto
{
"bundleMediaFramework": false,
"files": {}
}

DebConfig

Configuración para el paquete Debian.

Por defecto
{
"files": {}
}

RpmConfig

Configuración para el paquete RPM.

Por defecto
{
"epoch": 0,
"files": {},
"release": "1"
}

Estructura de coordenadas de posición.

Object Properties:

  • x (required)
  • y (required)

number formateado como double

Coordenada X.

number formateado como double

Coordenada Y.

Configuración para los paquetes de macOS.

Ver más: <https://v2.tauri.app/reference/config/#macconfig>

Object Properties:

  • bundleName
  • bundleVersion
  • dmg
  • entitlements
  • exceptionDomain
  • files
  • frameworks
  • hardenedRuntime
  • infoPlist
  • minimumSystemVersion
  • providerShortName
  • signingIdentity

string | null

El nombre del constructor (builder) que construyó el paquete.

Se traduce a la propiedad CFBundleName del paquete.

Si no se establece, toma por defecto el nombre de producto del paquete.

string | null

La versión de la compilación que identifica una iteración del paquete.

Se traduce a la propiedad CFBundleVersion del paquete.

DmgConfig

Ajustes específicos de DMG.

Por defecto
{
"appPosition": {
"x": 180,
"y": 170
},
"applicationFolderPosition": {
"x": 480,
"y": 170
},
"windowSize": {
"height": 400,
"width": 660
}
}

string | null

Ruta al archivo de entitlements.

string | null

Permite que tu aplicación se comunique con el mundo exterior. Debe ser un nombre de dominio en minúsculas, sin puerto ni protocolo.

Los archivos a incluir en la aplicación relativos al directorio Contents.

Allows additional properties: string

Default: {}

string[] | null

Una lista de cadenas que indican los frameworks de macOS X que necesitan ser empaquetados con la aplicación.

Si se usa un nombre, debe omitirse “.framework” y buscará en las ubicaciones de instalación estándar. También puedes usar una ruta a un framework específico.

boolean

Si la firma de código (codesign) debe habilitar el hardened runtime (para ejecutables) o no.

Default: true

string | null

Ruta a un archivo Info.plist para fusionar con el Info.plist por defecto.

Ten en cuenta que Tauri también busca un archivo Info.plist en el mismo directorio que el archivo de configuración de Tauri.

string | null

Una cadena de versión que indica la versión mínima de macOS X que admite la aplicación empaquetada. Por defecto es 10.13.

Establecerlo en null elimina por completo el campo LSMinimumSystemVersion en el Info.plist del paquete y la variable de entorno MACOSX_DEPLOYMENT_TARGET.

Se ignora en tauri dev.

Una cadena vacía se considera un valor no válido, por lo que se utiliza el valor por defecto.

Default: "10.13"

string | null

Nombre corto del proveedor para la notarización.

string | null

Identidad a usar para la firma de código (code signing).

One of the following:

  • "zlib" ZLIB utiliza el algoritmo deflate, es un método rápido y sencillo. Con el nivel de compresión predeterminado utiliza unos 300 KB de memoria.
  • "bzip2" BZIP2 suele ofrecer mejores relaciones de compresión que ZLIB, pero es un poco más lento y utiliza más memoria. Con el nivel de compresión predeterminado utiliza unos 4 MB de memoria.
  • "lzma" LZMA (predeterminado) es un nuevo método de compresión que ofrece muy buenas relaciones de compresión. La velocidad de descompresión es alta (10-20 MB/s en una CPU de 2 GHz), la velocidad de compresión es menor. El tamaño de memoria que se utilizará para la descompresión es el tamaño del diccionario más unos pocos KB, el valor predeterminado es 8 MB.
  • "none" Desactiva la compresión

Algoritmos de compresión utilizados en el instalador NSIS.

Consulta <https://nsis.sourceforge.io/Reference/SetCompressor>

Configuración para el paquete instalador que usa NSIS.

Object Properties:

  • compression
  • customLanguageFiles
  • displayLanguageSelector
  • headerImage
  • installerHooks
  • installerIcon
  • installMode
  • languages
  • minimumWebview2Version
  • sidebarImage
  • startMenuFolder
  • template
  • uninstallerHeaderImage
  • uninstallerIcon

NsisCompression

Establece el algoritmo de compresión utilizado para comprimir archivos en el instalador.

Consulta <https://nsis.sourceforge.io/Reference/SetCompressor>

Default: "lzma"

| null

Un par clave-valor donde la clave es el idioma y el valor es la ruta a un archivo .nsh personalizado que contiene el texto traducido para los mensajes personalizados de tauri.

Consulta <https://github.com/tauri-apps/tauri/blob/dev/crates/tauri-bundler/src/bundle/windows/nsis/languages/English.nsh> para ver un ejemplo de archivo .nsh.

Nota: la clave debe ser un idioma válido de NSIS y debe agregarse al arreglo [Self::languages],

Allows additional properties: string

boolean

Si se debe mostrar un diálogo de selección de idioma antes de que se rendericen las ventanas del instalador y desinstalador o no. Por defecto se selecciona el idioma del sistema operativo, con un respaldo al primer idioma en el arreglo languages.

string | null

La ruta a un archivo de mapa de bits (bitmap) para mostrar en el encabezado de las páginas del instalador.

Las dimensiones recomendadas son 150px x 57px.

string | null

Una ruta a un archivo .nsh que contiene macros especiales de NSIS para engancharse en el script principal installer.nsi.

Los hooks admitidos son:

  • NSIS_HOOK_PREINSTALL: Este gancho se ejecuta antes de copiar archivos, establecer valores de claves de registro y crear accesos directos.
  • NSIS_HOOK_POSTINSTALL: Este gancho se ejecuta después de que el instalador haya terminado de copiar todos los archivos, establecer las claves de registro y creado accesos directos.
  • NSIS_HOOK_PREUNINSTALL: Este gancho se ejecuta antes de eliminar cualquier archivo, clave de registro y acceso directo.
  • NSIS_HOOK_POSTUNINSTALL: Este gancho se ejecuta después de que los archivos, claves de registro y accesos directos hayan sido eliminados.
!macro NSIS_HOOK_PREINSTALL
MessageBox MB_OK "PreInstall"
!macroend
!macro NSIS_HOOK_POSTINSTALL
MessageBox MB_OK "PostInstall"
!macroend
!macro NSIS_HOOK_PREUNINSTALL
MessageBox MB_OK "PreUnInstall"
!macroend
!macro NSIS_HOOK_POSTUNINSTALL
MessageBox MB_OK "PostUninstall"
!macroend

string | null

La ruta a un archivo de icono utilizado como el icono del instalador.

NSISInstallerMode

Si la instalación será para todos los usuarios o solo para el usuario actual.

Default: "currentUser"

string[] | null

Una lista de idiomas del instalador. Por defecto es ["English"] si no se establece.

Por defecto se utiliza el idioma del sistema operativo. Si el idioma del sistema operativo no está en la lista de idiomas, se utilizará el primer idioma. Para permitir que el usuario seleccione el idioma, establece display_language_selector en true.

Consulta <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> para ver la lista completa de idiomas.

string | null

Deprecado: usa [WindowsConfig::minimum_webview2_version] (bundle > windows > minimumWebview2Version) en su lugar.

Intenta asegurarte de que la versión de WebView2 sea igual o más reciente que esta versión, si la versión de WebView2 del usuario es más antigua que esta versión, el instalador intentará activar una actualización de WebView2.

string | null

La ruta a un archivo de mapa de bits (bitmap) para la página de Bienvenida y la página de Finalización.

Las dimensiones recomendadas son 164px x 314px.

string | null

Establece el nombre de la carpeta para el acceso directo del menú de inicio.

Usa esta opción si tienes varias aplicaciones y deseas agrupar sus accesos directos en una sola carpeta o si generalmente prefieres establecer tu acceso directo dentro de una carpeta.

Ejemplos:

  • AwesomePublisher, el acceso directo se colocará en %AppData%\Microsoft\Windows\Start Menu\Programs\AwesomePublisher\<tu-app>.lnk
  • Si no se establece, el acceso directo se colocará en %AppData%\Microsoft\Windows\Start Menu\Programs\<tu-app>.lnk

string | null

Una plantilla .nsi personalizada a utilizar.

string | null

La ruta a un archivo mapa de bits para mostrar en la cabecera de las páginas del desinstalador. Por defecto es [Self::header_image]. Si se establece esto pero [Self::header_image] no, se aplicará una imagen por defecto de NSIS a header_image

Las dimensiones recomendadas son 150px x 57px.

string | null

La ruta a un archivo de icono utilizado como icono del desinstalador.

One of the following:

  • "currentUser" Modo por defecto para el instalador. Instala la app por defecto en un directorio que no requiere acceso de Administrador. Los metadatos del instalador se guardarán bajo la ruta de registro HKCU.
  • "perMachine" Instala la app por defecto en el directorio de la carpeta Program Files requiere acceso de Administrador para la instalación. Los metadatos del instalador se guardarán bajo la ruta de registro HKLM.
  • "both" Combina ambos modos y permite al usuario elegir al momento de la instalación si desea instalar para el usuario actual o por máquina. Ten en cuenta que este modo requerirá acceso de Administrador incluso si el usuario quiere instalarlo solo para el usuario actual. Los metadatos del instalador se guardarán bajo la ruta de registro HKLM o HKCU según la elección del usuario.

Modos de instalación para el instalador NSIS.

Any of the following:

  • integer formateado como int64 Representa un [i64].
  • number formateado como double Representa un [f64].

Un número ACL válido.

One of the following:

  • Patrón Brownfield. Propiedades del objeto: - use (requerido) ##### use "brownfield"
  • Patrón Isolation. Recomendado por razones de seguridad. Propiedades del objeto: - options (requerido) - use (requerido) ##### options Propiedades del objeto: - dir (requerido) ###### dir string El directorio que contiene el archivo index.html que contiene la aplicación de aislamiento segura. ##### use "isolation"

El patrón de la aplicación.

Any of the following:

  • Identifier Referencia un permiso o conjunto de permisos por su identificador.
  • Referencia un permiso o conjunto de permisos por su identificador y extiende su alcance. Propiedades del objeto: - allow - deny - identifier (requerido) ##### allow Value[] | null Datos que definen lo que está permitido por el alcance. ##### deny Value[] | null Datos que definen lo que está denegado por el alcance. Esto debe tener prioridad en la lógica de validación. ##### identifier Identifier Identificador del permiso o conjunto de permisos.

Una entrada para un valor de permiso en una [Capability] puede ser un [Identifier] de permiso sin procesar o un objeto que referencia un permiso y extiende su alcance.

La configuración de los plugins contiene un HashMap que mapea el nombre de un plugin con su objeto de configuración.

Ver más: <https://v2.tauri.app/reference/config/#pluginconfig>

Allows additional properties: true

Estructura de coordenadas de posición.

Object Properties:

  • x (required)
  • y (required)

integer formateado como uint32

Coordenada X.

integer formateado como uint32

Coordenada Y.

Any of the following:

  • boolean Habilitar la prevención de desbordamiento o no
  • PreventOverflowMargin Habilitar la prevención de desbordamiento con un margen para que el tamaño de la ventana + este margen no desborde el área de trabajo (workarea)

Prevenir el desbordamiento (overflow) con un margen

Habilitar la prevención de desbordamiento con un margen para que el tamaño de la ventana + este margen no desborde el área de trabajo (workarea)

Object Properties:

  • height (required)
  • width (required)

integer formateado como uint32

Margen vertical en píxeles físicos

integer formateado como uint32

Margen horizontal en píxeles físicos

One of the following:

  • Compresión Gzip Propiedades del objeto: - level (requerido) - type (requerido) ##### level integer formateado como uint32 Nivel de compresión Gzip ##### type "gzip"
  • Compresión Zstd Propiedades del objeto: - level (requerido) - type (requerido) ##### level integer formateado como int32 Nivel de compresión Zstd ##### type "zstd"
  • Compresión Xz Propiedades del objeto: - level (requerido) - type (requerido) ##### level integer formateado como uint32 Nivel de compresión Xz ##### type "xz"
  • Compresión Bzip2 Propiedades del objeto: - level (requerido) - type (requerido) ##### level integer formateado como uint32 Nivel de compresión Bzip2 ##### type "bzip2"
  • Desactivar compresión Propiedades del objeto: - type (requerido) ##### type "none"

Algoritmos de compresión utilizados al empaquetar paquetes RPM.

Configuración para paquetes RPM.

Object Properties:

  • compression
  • conflicts
  • depends
  • desktopTemplate
  • epoch
  • files
  • obsoletes
  • postInstallScript
  • postRemoveScript
  • preInstallScript
  • preRemoveScript
  • provides
  • recommends
  • release

RpmCompression | null

Algoritmo de compresión y nivel. Por defecto es Gzip con nivel 6.

string[] | null

La lista de dependencias RPM con las que tu aplicación entra en conflicto. No deben estar presentes para que el paquete pueda ser instalado.

string[] | null

La lista de dependencias RPM en las que confía tu aplicación.

string | null

Ruta a una plantilla personalizada de Handlebars para el archivo desktop.

Variables disponibles: categories, comment (opcional), exec, icon y name.

integer formateado como uint32

La época (epoch) RPM.

Los archivos a incluir en el paquete.

Allows additional properties: string

Default: {}

string[] | null

La lista de dependencias RPM a las que tu aplicación reemplaza; si este paquete está instalado, los paquetes listados como “obsoletes” se eliminarán automáticamente (si están presentes).

string | null

Ruta al script que se ejecutará después de desempaquetar el paquete. Consulta <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

string | null

Ruta al script que se ejecutará después de eliminar el paquete. Consulta <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

string | null

Ruta al script que se ejecutará antes de desempaquetar el paquete. Consulta <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

string | null

Ruta al script que se ejecutará antes de eliminar el paquete. Consulta <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

string[] | null

La lista de dependencias RPM que proporciona tu aplicación.

string[] | null

La lista de dependencias RPM que recomienda tu aplicación.

string

La etiqueta de lanzamiento (release tag) RPM.

Default: "1"

Any of the following:

  • string Una cadena que especifica el binario a ejecutar.
  • Un objeto con opciones de configuración avanzadas. Propiedades del objeto: - args - cmd (requerido) - cwd ##### args string[] | null Argumentos para pasar al comando. ##### cmd string El binario a ejecutar. ##### cwd string | null El directorio de trabajo actual desde el cual ejecutar el comando.

La configuración del ejecutor (runner).

One of the following:

El estilo de la barra de desplazamiento a usar en la webview.

  • Windows: Esta opción debe tener el mismo valor para todos los webviews que apuntan al mismo directorio de datos.

Configuración de seguridad.

Ver más: <https://v2.tauri.app/reference/config/#securityconfig>

Object Properties:

  • assetProtocol
  • capabilities
  • csp
  • dangerousDisableAssetCspModification
  • devCsp
  • freezePrototype
  • headers
  • pattern

AssetProtocolConfig

Configuración de protocolo personalizado.

Por defecto
{
"enable": false,
"scope": []
}

CapabilityEntry[]

Lista de capacidades que están habilitadas en la aplicación.

Por defecto (no establecido o lista vacía), se incluyen todos los archivos de capacidades de ./capabilities/, al establecer valores en esta entrada, tienes un control preciso sobre qué capacidades se incluyen

Puedes hacer referencia a un archivo de capacidad definido en ./capabilities/ con su identificador o incluir un [Capability] directamente

{
"app": {
"capabilities": [
"main-window",
{
"identifier": "drag-window",
"permissions": ["core:window:allow-start-dragging"]
}
]
}
}

Default: []

Csp | null

La Content Security Policy que se inyectará en todos los archivos HTML en la aplicación construida. Si no se especifica dev_csp, este valor también se inyecta en dev.

Esta es una parte muy importante de la configuración ya que te ayuda a garantizar que tu WebView esté seguro. Consulta <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.

DisabledCspModificationKind

Deshabilita las fuentes CSP inyectadas por Tauri.

En el momento de la compilación, Tauri analiza todos los recursos del frontend y cambia la Content-Security-Policy para permitir únicamente la carga de tus propios scripts y estilos inyectando fuentes de nonce y hash. Esto vuelve más estricta tu CSP, lo cual puede introducir problemas cuando se usa junto con otras fuentes flexibles.

Esta opción de configuración permite tanto un booleano como una lista de cadenas como valor. Un booleano le indica a Tauri que deshabilite la inyección para todas las inyecciones de CSP, y una lista de cadenas indica las directivas de CSP que Tauri no puede inyectar.

ADVERTENCIA: Deshabilita esto únicamente si sabes lo que estás haciendo y has configurado adecuadamente la CSP. Tu aplicación podría ser vulnerable a ataques XSS sin esta protección de Tauri.

Csp | null

La política de seguridad de contenido (Content Security Policy) que se inyectará en todos los archivos HTML en desarrollo.

Esta es una parte muy importante de la configuración ya que te ayuda a garantizar que tu WebView esté seguro. Consulta <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.

boolean

Congelar el Object.prototype cuando se utiliza el protocolo personalizado.

HeaderConfig | null

Las cabeceras que se añaden a cada respuesta HTTP de Tauri a la vista web. Esto no incluye mensajes IPC ni respuestas de error.

PatternKind

El patrón a utilizar.

Por defecto
{
"use": "brownfield"
}

Tamaño de la ventana.

Object Properties:

  • height (required)
  • width (required)

integer formateado como uint32

Altura de la ventana.

integer formateado como uint32

Ancho de la ventana.

One of the following:

  • "macOS" macOS.
  • "windows" Windows.
  • "linux" Linux.
  • "android" Android.
  • "iOS" iOS.

Plataforma de destino.

One of the following:

  • Tema "Light" (Claro).
  • Tema "Dark" (Oscuro).

Tema del sistema.

One of the following:

  • "Visible" Una barra de título normal.
  • "Transparent" Hace que la barra de título sea transparente, de modo que en su lugar se muestre el color de fondo de la ventana. Útil si no necesitas tener HTML real debajo de la barra de título. Esto te permite evitar las advertencias de usar TitleBarStyle::Overlay. Será más útil cuando Tauri te permita configurar un color de fondo personalizado para la ventana.
  • "Overlay" Muestra la barra de título como una capa transparente sobre el contenido de la ventana. Ten en cuenta: - La altura de la barra de título es diferente en diferentes versiones del sistema operativo, lo que puede provocar que los controles y el título de la ventana no estén donde esperas. - Debes definir una región de arrastre personalizada para hacer que tu ventana se pueda arrastrar; sin embargo, debido a una limitación, no puedes arrastrar la ventana cuando no está enfocada <https://github.com/tauri-apps/tauri/issues/4316>. - El color del título de la ventana depende del tema del sistema.

Cómo se debe mostrar la barra de título de la ventana en macOS.

Configuración para el icono de la bandeja de sistema de la aplicación.

Ver más: <https://v2.tauri.app/reference/config/#trayiconconfig>

Object Properties:

  • iconAsTemplate
  • iconPath (required)
  • id
  • menuOnLeftClick
  • showMenuOnLeftClick
  • title
  • tooltip

boolean

Un valor booleano que determina si la imagen representa una imagen template en macOS.

string

Ruta al icono por defecto a usar para el icono de la bandeja de sistema.

Nota: esto almacena la imagen en píxeles puros en el binario final, así que mantén el tamaño del icono (ancho y alto) pequeño o de lo contrario va a engordar tu ejecutable final

string | null

Establece un id para este icono de la bandeja para que puedas referenciarlo más tarde, por defecto es main.

boolean

Ya no funciona desde la v2.2, usa [Self::show_menu_on_left_click] en su lugar

Un valor booleano que determina si el menú debe aparecer cuando el icono de la bandeja de sistema recibe un clic izquierdo.

  • Linux: No soportado.

Default: true

boolean

Un valor booleano que determina si el menú debe aparecer cuando el icono de la bandeja de sistema recibe un clic izquierdo.

  • Linux: No soportado.

Default: true

string | null

Título para la bandeja de sistema de macOS

string | null

Tooltip del icono de la bandeja de sistema en Windows y macOS

Any of the following:

  • V1Compatible Genera actualizadores compatibles con v1 comprimidos heredados
  • boolean Producir actualizadores y sus firmas o no

Tipo de actualizador

"v1Compatible", Genera actualizadores compatibles con v1 comprimidos heredados

Genera actualizadores comprimidos heredados compatibles con v1

Any of the following:

  • null Representa un valor JSON nulo.
  • boolean Representa un [bool].
  • Number Representa un [Number] ACL válido.
  • string Representa un [String].
  • Value[] Representa una lista de otros [Value]s.
  • Representa un mapa de claves [String] a [Value]s. Permite propiedades adicionales: Value

Todos los valores ACL soportados.

One of the following:

  • No instalar el Webview2 como parte del Instalador de Windows. Propiedades del objeto: - type (requerido) ##### type "skip"
  • Descargar el bootstrapper y ejecutarlo. Requiere una conexión a internet. Da como resultado un tamaño de instalador más pequeño, pero no se recomienda en Windows 7. Propiedades del objeto: - silent - type (requerido) ##### silent boolean Le indica al instalador que ejecute el bootstrapper en modo silencioso. Por defecto es true. Default: true ##### type "downloadBootstrapper"
  • Incrustar el bootstrapper y ejecutarlo. Requiere una conexión a internet. Aumenta el tamaño del instalador en alrededor de 1.8MB, pero ofrece un mejor soporte en Windows 7. Propiedades del objeto: - silent - type (requerido) ##### silent boolean Le indica al instalador que ejecute el bootstrapper en modo silencioso. Por defecto es true. Default: true ##### type "embedBootstrapper"
  • Incrustar el instalador fuera de línea y ejecutarlo. No requiere una conexión a internet. Aumenta el tamaño del instalador en alrededor de 127MB. Propiedades del objeto: - silent - type (requerido) ##### silent boolean Le indica al instalador que ejecute el instalador en modo silencioso. Por defecto es true. Default: true ##### type "offlineInstaller"
  • Incrustar una versión fija de webview2 y usarla en tiempo de ejecución. Aumenta el tamaño del instalador en alrededor de 180MB. Propiedades del objeto: - path (requerido) - type (requerido) ##### path string La ruta al runtime fijo a utilizar. La versión fija se puede descargar en el sitio web oficial. El archivo .cab debe extraerse a una carpeta y la ruta de esta carpeta debe definirse en este campo. ##### type "fixedRuntime"

Modos de instalación para el runtime de Webview2. Ten en cuenta que para el paquete del actualizador se utiliza [Self::DownloadBootstrapper].

Para más información consulta <https://v2.tauri.app/distribute/windows-installer/#webview2-installation-options>.

Any of the following:

  • string formateado como uri Una URL externa. Debe usar los esquemas http o https.
  • string La porción de la ruta de una URL de la app. Por ejemplo, para cargar tauri://localhost/users/john, simplemente puedes proporcionar users/john en esta configuración.
  • string formateado como uri Una URL de protocolo personalizado, por ejemplo, doom://index.html

Una URL para abrir en una ventana webview de Tauri.

El objeto de configuración de la ventana.

Ver más: <https://v2.tauri.app/reference/config/#windowconfig>

Object Properties:

  • acceptFirstMouse
  • activityName
  • additionalBrowserArgs
  • allowLinkPreview
  • alwaysOnBottom
  • alwaysOnTop
  • backgroundColor
  • backgroundThrottling
  • browserExtensionsEnabled
  • center
  • closable
  • contentProtected
  • crear
  • createdByActivityName
  • dataDirectory
  • dataStoreIdentifier
  • decorations
  • devtools
  • disableInputAccessoryView
  • dragDropEnabled
  • focus
  • focusable
  • fullscreen
  • generalAutofillEnabled
  • height
  • hiddenTitle
  • incognito
  • javascriptDisabled
  • label
  • limitNavigationsToAppBoundDomains
  • maxHeight
  • maximizable
  • maximized
  • maxWidth
  • minHeight
  • minimizable
  • minWidth
  • noRedirectionBitmap
  • parent
  • preventOverflow
  • proxyUrl
  • requestedBySceneIdentifier
  • resizable
  • scrollBarStyle
  • shadow
  • skipTaskbar
  • tabbingIdentifier
  • theme
  • title
  • titleBarStyle
  • trafficLightPosition
  • transparent
  • url
  • useHttpsScheme
  • userAgent
  • visible
  • visibleOnAllWorkspaces
  • width
  • windowClassname
  • windowEffects
  • x
  • y
  • zoomHotkeysEnabled

boolean

Si al hacer clic en una ventana inactiva también se hace clic a través de la webview en macOS.

string | null

El nombre de la actividad de Android a crear para esta ventana.

string | null

Define argumentos de navegador adicionales en Windows.

Las instancias de Webview con diferentes argumentos de navegador también deben tener diferentes directorios de datos.

Por defecto wry pasa --disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection así que si estableces esto, también necesitas desactivar estos componentes por ti mismo si lo deseas.

boolean

En macOS e iOS hay una vista previa de enlaces al mantener presionados los enlaces, esto está habilitado por defecto. consulta https://docs.rs/objc2-web-kit/latest/objc2_web_kit/struct.WKWebView.html#method.allowsLinkPreview

Default: true

boolean

Si la ventana siempre debe estar por debajo de otras ventanas.

boolean

Si la ventana siempre debe estar por encima de otras ventanas.

Color | null

Establece el color de fondo de la ventana y de la webview.

  • Windows: el canal alfa se ignora para la capa de la ventana.
  • Windows: En Windows 7, el canal alfa se ignora para la capa de webview.
  • Windows: En Windows 8 y superior, si el canal alfa no es 0, se ignorará para la capa de webview.

BackgroundThrottlingPolicy | null

Cambia el comportamiento por defecto de limitación en segundo plano (background throttling).

Por defecto, los navegadores utilizan una política de suspensión que limita (throttle) los temporizadores e incluso descarga toda la pestaña (vista) para liberar recursos después de aproximadamente 5 minutos cuando una vista pasa a estar minimizada u oculta. Esto pausará todas las tareas hasta que el estado de visibilidad del documento cambie nuevamente de oculto a visible al volver a traer la vista al primer plano.

  • Linux / Windows / Android: No soportado. Soluciones alternativas como una transacción WebLock pendiente podrían ser suficientes.
  • iOS: Soportado desde la versión 17.0+.
  • macOS: Soportado desde la versión 14.0+.

consulta <https://github.com/tauri-apps/tauri/issues/5250#issuecomment-2569380578>

boolean

Si se pueden instalar extensiones de navegador para el proceso webview

boolean

Si la ventana comienza centrada o no.

boolean

Si el botón de cierre nativo de la ventana está habilitado o no.

  • Linux: “GTK+ hará todo lo posible para convencer al administrador de ventanas de que no muestre un botón de cierre. Dependiendo del sistema, esta función puede no tener ningún efecto cuando se llama en una ventana que ya es visible”
  • iOS / Android: No soportado.

Default: true

boolean

Evita que el contenido de la ventana sea capturado por otras aplicaciones.

boolean

Si Tauri debe crear esta ventana al iniciar la aplicación o no.

Cuando esto se establece en false, debes obtener manualmente el objeto de configuración a través de app.config().app.windows y crearlo con WebviewWindowBuilder::from_config.

tauri::Builder::default()
.setup(|app| {
tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;
Ok(())
});

Default: true

string | null

El nombre de la actividad de Android que está creando esta ventana webview.

Esto es importante para determinar a qué pila pertenecerá la actividad.

string | null

Establece una ruta personalizada para el directorio de datos del webview (localStorage, caché, etc.) relativa a [appDataDir()]/${label}.

Para establecer rutas absolutas, usa WebviewWindowBuilder::data_directory

  • Windows: Los WebViews con diferentes valores para configuraciones como additionalBrowserArgs, browserExtensionsEnabled o scrollBarStyle deben tener diferentes directorios de datos.
  • macOS / iOS: No soportado, usa dataStoreIdentifier en su lugar.
  • Android: No soportado.

integer formateado como uint8[] | null máximo de 16 elementos, mínimo de 16 elementos

Inicializa el WebView con un identificador de almacén de datos personalizado. Esto puede verse como un reemplazo para dataDirectory que no está disponible en WKWebView. Consulta https://developer.apple.com/documentation/webkit/wkwebsitedatastore/init(foridentifier:)?language=objc

El arreglo debe contener 16 números u8.

  • iOS: Soportado desde la versión 17.0+.
  • macOS: Soportado desde la versión 14.0+.
  • Windows / Linux / Android: No soportado.

boolean

Si la ventana debe tener bordes y barras.

Default: true

boolean | null

Habilita el inspector web que habitualmente se denomina devtools del navegador. Habilitado por defecto.

Esta API funciona en compilaciones de debug, pero requiere el flag de característica devtools para habilitarlo en compilaciones de release.

  • macOS: Esto llamará a funciones privadas en macOS.
  • Android: Abre chrome://inspect/#devices en Chrome para obtener la ventana de devtools. La API devtools de WebView de Wry no es compatible en Android.
  • iOS: Abre Safari > Desarrollo > [Nombre de tu dispositivo] > [Tu WebView] para obtener la ventana de devtools.

boolean

Permite deshabilitar la vista accesoria de entrada (input accessory view) en iOS.

La vista accesoria es la vista que aparece sobre el teclado cuando se enfoca un elemento de entrada de texto. Por lo general, muestra una vista con botones “Done”, “Next”.

boolean

Si los manejadores de arrastrar y soltar utilizados internamente para generar DragDropEvents están habilitados en el webview. Por defecto está habilitado.

Deshabilitarlo es necesario para usar arrastrar y soltar (drag and drop) de HTML5 en el frontend en Windows ya que reemplazamos el manejador de arrastrar y soltar de WebView2.

Nota: esta configuración se mapea a WebviewBuilder::disable_drag_drop_handler, no a WindowBuilder::drag_and_drop.

Default: true

boolean

Si la ventana estará enfocada inicialmente o no.

Default: true

boolean

Si la ventana será enfocable o no.

Default: true

boolean

Si la ventana inicia en pantalla completa o no.

boolean

Controla el comportamiento general de autocompletado del navegador en WebView.

Esta opción no deshabilita el autocompletado de contraseñas o tarjetas de crédito.

Cuando se establece en false, el WebView no poblará automáticamente los campos generales del formulario utilizando datos previamente almacenados, como direcciones o información de contacto.

Si no se especifica, esto es true por defecto.

  • Windows: Soportado. La función de autocompletado de WebView2 (llamada “Sugerencias”) puede no respetar autocomplete="off" en elementos de entrada en algunos casos.
  • Linux / Android / iOS / macOS: No soportado y no realiza ninguna operación.

Default: true

number formateado como double

La altura de la ventana en píxeles lógicos.

Default: 600

boolean

Si es true, establece que el título de la ventana se oculte en macOS.

boolean

Si la webview debe iniciarse o no en modo incógnito.

  • Android: No soportado.

boolean

Si debemos deshabilitar la ejecución de código JavaScript en la webview o no.

string

El identificador de la ventana. Debe ser alfanumérico.

Default: "main"

boolean

Si se deben limitar las navegaciones a App-Bound Domains. Esto es necesario para habilitar Service Workers en iOS según StackOverflow.

Por defecto es false.

Nota: Si estableces esto en true asegúrate de agregar localhost y cualquier dominio registrable utilizado en este webview a tauri-src/Info.ios.plist:

&lt;plist&gt;
&lt;dict&gt;
&lt;key&gt;WKAppBoundDomains&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;localhost&lt;/string&gt;
&lt;string&gt;aregistrabledomain.example&lt;/string&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;/plist&gt;

Debes agregar localhost si cualquier webview con esto establecido en true abre una página web local, realiza llamadas a localhost o utiliza el patrón isolation porque Tauri usa el dominio localhost para alojar la página web de la aplicación, el protocolo IPC y el iframe del patrón isolation.

Las solicitudes servidas a través de esquemas uri personalizados están permitidas siempre que usen un dominio registrable especificado en el arreglo WKAppBoundDomains para todas las solicitudes de la app, incluidas las solicitudes para el dominio localhost.

En teoría, puedes incluir en la lista blanca todo un esquema uri incluyendo el nombre del protocolo seguido de dos puntos. Por ejemplo, para permitir todas las solicitudes usando un esquema uri “stream” personalizado (consulta este ejemplo de tauri), podrías agregar stream: al arreglo AppBoundDomains. Dicho esto, no estoy seguro de si Apple dejaría pasar tu app a través de la revisión de aplicaciones si incluyes en la lista blanca un protocolo completo porque esta función no se menciona en su publicación de blog sobre App-Bound Domains.

Consulta https://webkit.org/blog/10882/app-bound-domains/ y https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/limitsnavigationstoappbounddomains para ver la documentación oficial sobre App-Bound Domains.

  • iOS: Soportado desde la versión 14.0+.
  • Linux / Windows / Android / MacOS: No soportado.

number | null formateado como double

La altura máxima de la ventana en píxeles lógicos.

boolean

Si el botón nativo de maximizar de la ventana está habilitado o no. Si resizable está establecido en false, esta configuración se ignora.

  • macOS: Deshabilita el botón de “zoom” en la barra de título de la ventana, que también se usa para entrar en modo de pantalla completa.
  • Linux / iOS / Android: No soportado.

Default: true

boolean

Si la ventana está maximizada o no.

number | null formateado como double

El ancho máximo de la ventana en píxeles lógicos.

number | null formateado como double

La altura mínima de la ventana en píxeles lógicos.

boolean

Si el botón nativo de minimizar de la ventana está habilitado o no.

  • Linux / iOS / Android: No soportado.

Default: true

number | null formateado como double

El ancho mínimo de la ventana en píxeles lógicos.

boolean

Esto establece WS_EX_NOREDIRECTIONBITMAP.

Esto puede evitar el destello blanco que puede aparecer antes de que se renderice el contenido del webview al usar una ventana transparente. Solo Windows.

string | null

Establece la ventana asociada con esta etiqueta para ser la ventana principal (parent) de la ventana que se va a crear.

PreventOverflowConfig | null

Si se debe evitar o no que la ventana se desborde del área de trabajo (workarea)

  • iOS / Android: No soportado.

string | null formateado como uri

La URL del proxy para la WebView para todas las solicitudes de red.

Debe ser una URL de tipo http:// o socks5://.

  • macOS: Requiere el flag de característica macos-proxy y solo se compila para macOS 14+.

string | null

Establece el identificador de la escena que solicita la nueva escena, estableciendo una relación entre las dos escenas.

Por defecto el sistema utiliza la escena en primer plano (foreground scene).

boolean

Si la ventana es redimensionable o no. Cuando resizable se establece en false, el botón nativo de maximizar la ventana se deshabilita automáticamente.

Default: true

ScrollBarStyle

Especifica el estilo de la barra de desplazamiento nativa a usar con el webview. Los estilos CSS que modifican la barra de desplazamiento se aplican sobre la apariencia nativa configurada aquí.

Por defecto es default, que es el valor predeterminado del navegador.

  • Windows:
    • fluentOverlay requiere WebView2 Runtime versión 125.0.2535.41 o superior, y no hace nada en versiones anteriores.
    • Esta opción debe recibir el mismo valor para todas las webviews que apunten al mismo directorio de datos.
  • Linux / Android / iOS / macOS: No soportado. Solo soporta Default y no realiza ninguna operación.

Default: "default"

boolean

Si la ventana tiene sombra o no.

  • Windows:
    • false no tiene efecto en ventanas decoradas, la sombra siempre está ACTIVADA (ON).
    • true hará que la ventana sin decoraciones tenga un borde blanco de 1px, y en Windows 11, tendrá esquinas redondeadas.
  • Linux: No soportado.

Default: true

boolean

Si es true, oculta el icono de la ventana de la barra de tareas en Windows y Linux.

string | null

Define el identificador de pestañas de la ventana para macOS.

Las ventanas con identificadores de pestañas coincidentes se agruparán. Si el identificador de pestañas no está configurado, la agrupación automática en pestañas estará deshabilitada.

Theme | null

El tema inicial de la ventana. Por defecto toma el tema del sistema. Solo implementado en Windows y macOS 10.14+.

string

El título de la ventana.

Default: "Tauri App"

TitleBarStyle

El estilo de la barra de título de macOS.

Default: "Visible"

LogicalPosition | null

La posición de los controles de la ventana en macOS.

Requiere titleBarStyle: Overlay y decorations: true.

boolean

Si la ventana es transparente o no.

Ten en cuenta que en macOS esto requiere el flag de característica macos-private-api, habilitado bajo tauri > macOSPrivateApi. ADVERTENCIA: El uso de APIs privadas en macOS evita que tu aplicación sea aceptada en la App Store.

En Windows, usar noRedirectionBitmap puede ayudar a evitar un destello blanco al crear una ventana transparente.

WebviewUrl

La URL de la webview de la ventana.

Default: "index.html"

boolean

Establece si los protocolos personalizados deben usar https://<scheme>.localhost en lugar del predeterminado http://<scheme>.localhost en Windows y Android. Por defecto es false.

Usar un esquema https NO permitirá contenido mixto al intentar obtener endpoints http y, por lo tanto, no coincidirá con el comportamiento de los protocolos <scheme>://localhost utilizados en macOS y Linux.

Cambiar este valor entre lanzamientos cambiará la ubicación de IndexedDB, cookies y localstorage y tu app no podrá acceder a los datos anteriores.

string | null

El agente de usuario (user agent) para la webview

boolean

Si la ventana es visible o no.

Default: true

boolean

Si la ventana debe ser visible en todos los espacios de trabajo o escritorios virtuales.

  • Windows / iOS / Android: No soportado.

number formateado como double

El ancho de la ventana en píxeles lógicos.

Default: 800

string | null

El nombre de la clase de ventana creada en Windows para crear la ventana. Solo Windows.

WindowEffectsConfig | null

Efectos de ventana.

Requiere que la ventana sea transparente.

number | null formateado como double

La posición horizontal de la esquina superior izquierda de la ventana en píxeles lógicos

number | null formateado como double

La posición vertical de la esquina superior izquierda de la ventana en píxeles lógicos

boolean

Si el zoom de página mediante atajos de teclado está habilitado

  • Windows: Controla la configuración IsZoomControlEnabled de WebView2.

  • MacOS / Linux: Inyecta un polyfill que acerca y aleja con ctrl/command + -/=, 20% en cada paso, en un rango del 20% al 1000%. Requiere el permiso webview:allow-set-webview-zoom

  • Android / iOS: No soportado.

One of the following:

  • "appearanceBased" Un material por defecto adecuado para el effectiveAppearance de la vista. macOS 10.14-
  • "light" macOS 10.14-
  • "dark" macOS 10.14-
  • "mediumLight" macOS 10.14-
  • "ultraDark" macOS 10.14-
  • "titlebar" macOS 10.10+
  • "selection" macOS 10.10+
  • "menu" macOS 10.11+
  • "popover" macOS 10.11+
  • "sidebar" macOS 10.11+
  • "headerView" macOS 10.14+
  • "sheet" macOS 10.14+
  • "windowBackground" macOS 10.14+
  • "hudWindow" macOS 10.14+
  • "fullScreenUI" macOS 10.14+
  • "tooltip" macOS 10.14+
  • "contentBackground" macOS 10.14+
  • "underWindowBackground" macOS 10.14+
  • "underPageBackground" macOS 10.14+
  • "mica" Efecto Mica que coincide con la preferencia de modo oscuro del sistema Solo Windows 11
  • "micaDark" Efecto Mica con modo oscuro, pero solo si el modo oscuro está habilitado en el sistema Solo Windows 11
  • "micaLight" Efecto Mica con modo claro Solo Windows 11
  • "tabbed" Efecto Tabbed que coincide con la preferencia de modo oscuro del sistema Solo Windows 11
  • "tabbedDark" Efecto Tabbed con modo oscuro, pero solo si el modo oscuro está habilitado en el sistema Solo Windows 11
  • "tabbedLight" Efecto Tabbed con modo claro Solo Windows 11
  • "blur" Solo Windows 7/10/11(22H1) ##### Notas Este efecto tiene un rendimiento deficiente al redimensionar/arrastrar la ventana en Windows 11 compilación 22621.
  • "acrylic" Solo Windows 10/11 ##### Notas Este efecto tiene un rendimiento deficiente al redimensionar/arrastrar la ventana en Windows 10 v1903+ y Windows 11 compilación 22000.

Efectos de ventana específicos de la plataforma

El objeto de configuración de efectos de ventana

Object Properties:

  • color
  • effects (required)
  • radius
  • state

Color | null

Color del efecto de ventana. Afecta a [WindowEffect::Blur] y [WindowEffect::Acrylic] únicamente en Windows 10 v1903+. No tiene ningún efecto en Windows 7 o Windows 11.

WindowEffect[]

Lista de efectos de ventana a aplicar a la ventana. Los efectos en conflicto aplicarán el primero e ignorarán el resto.

number | null formateado como double

Radio de las esquinas del efecto de ventana Solo macOS

WindowEffectState | null

Estado del efecto de ventana Solo macOS

One of the following:

  • "followsWindowActiveState" Hace que el estado del efecto de ventana siga el estado activo de la ventana
  • "active" Hace que el estado del efecto de ventana esté siempre activo
  • "inactive" Hace que el estado del efecto de ventana esté siempre inactivo

Estado del efecto de ventana solo macOS

<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>

Configuración de compilación específica para Windows.

Object Properties:

  • staticVCRuntime

boolean

Si se debe vincular estáticamente el entorno de ejecución (runtime) de Visual C++ al binario de la aplicación en objetivos MSVC de Windows.

Default: true

Configuración del empaquetador de Windows.

Ver más: <https://v2.tauri.app/reference/config/#windowsconfig>

Object Properties:

  • allowDowngrades
  • bundleVCRuntime
  • certificateThumbprint
  • digestAlgorithm
  • minimumWebview2Version
  • nsis
  • signCommand
  • timestampUrl
  • tsp
  • webviewInstallMode
  • wix

boolean

Valida una segunda instalación de la aplicación, bloqueando al usuario para que no instale una versión más antigua si se establece en false.

Por ejemplo, si 1.2.1 está instalada, el usuario no podrá instalar la versión de la aplicación 1.2.0 o 1.1.5.

El valor por defecto de este flag es true.

Default: true

boolean

Si se deben empaquetar las DLL del entorno de ejecución (runtime) de Visual C++ junto con la aplicación.

Esto puede ser especialmente útil cuando tu aplicación incluye sidecars o DLLs que no enlazan estáticamente el runtime de Visual C++ y requieren las DLLs del runtime en tiempo de ejecución, y no quieres exigir a los usuarios que instalen el paquete redistribuible de Visual C++. Esto también puede ser útil cuando build > windows > staticVCRuntime está configurado en false.

string | null

Especifica el hash SHA1 del certificado de firma.

string | null

Especifica el algoritmo de resumen (digest) de archivos a utilizar para crear firmas de archivos. Requerido para la firma de código. Se recomienda SHA-256.

string | null

Intenta asegurarte de que la versión de WebView2 sea igual o más reciente que esta versión, si la versión de WebView2 del usuario es más antigua que esta versión, el instalador intentará activar una actualización de WebView2.

NsisConfig | null

Configuración para el instalador generado con NSIS.

CustomSignCommandConfig | null

Especifica un comando personalizado para firmar los binarios. Este comando debe tener un %1 en los argumentos, que es solo un marcador de posición para la ruta del binario, el cual detectaremos y reemplazaremos antes de llamar al comando.

Por defecto utilizamos signtool.exe que solo se encuentra en Windows, por lo que si estás en otra plataforma y deseas hacer compilación cruzada y firmar, necesitarás usar otra herramienta como osslsigncode.

string | null

Servidor a usar durante el sellado de tiempo (timestamping).

boolean

Si se debe usar el Protocolo de Sellado de Tiempo (Time-Stamp Protocol, TSP, también conocido como RFC 3161) para el servidor de sellado de tiempo. Tu proveedor de firma de código puede usar un servidor de sellado de tiempo TSP, como por ejemplo lo hace SSL.com. Si es así, habilita TSP configurándolo en true.

WebviewInstallMode

El modo de instalación para el entorno de ejecución (runtime) de Webview2.

Por defecto
{
"silent": true,
"type": "downloadBootstrapper"
}

WixConfig | null

Configuración para el MSI generado con WiX.

Configuración para el paquete MSI usando WiX.

Ver más: <https://v2.tauri.app/reference/config/#wixconfig>

Object Properties:

  • bannerPath
  • componentGroupRefs
  • componentRefs
  • dialogImagePath
  • enableElevatedUpdateTask
  • featureGroupRefs
  • featureRefs
  • fipsCompliant
  • fragmentPaths
  • language
  • mergeRefs
  • template
  • upgradeCode
  • version

string | null

Ruta a un archivo mapa de bits para usar como banner de la interfaz de usuario de instalación. Este mapa de bits aparecerá en la parte superior de todas las páginas del instalador excepto la primera.

Las dimensiones requeridas son 493px × 58px.

string[]

Los id del elemento ComponentGroup que deseas referenciar desde los fragmentos.

Default: []

string[]

Los id del elemento Component que deseas referenciar desde los fragmentos.

Default: []

string | null

Ruta a un archivo mapa de bits para usar en los diálogos de la interfaz de usuario de instalación. Se utiliza en los diálogos de bienvenida y finalización.

Las dimensiones requeridas son 493px × 312px.

boolean

Crear una tarea de actualización elevada dentro del Programador de tareas de Windows.

string[]

Los id del elemento FeatureGroup que deseas referenciar desde los fragmentos.

Default: []

string[]

Los id del elemento Feature que deseas referenciar desde los fragmentos.

Default: []

boolean

Habilita algoritmos compatibles con FIPS. También se puede habilitar a través de la variable de entorno TAURI_BUNDLER_WIX_FIPS_COMPLIANT.

string[]

Una lista de rutas a archivos .wxs con fragmentos de WiX a utilizar.

Default: []

WixLanguage

Los idiomas del instalador a compilar. Consulta <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>.

Default: "en-US"

string[]

Los id del elemento Merge que deseas referenciar desde los fragmentos.

Default: []

string | null

Una plantilla .wxs personalizada a utilizar.

string | null formateado como uuid

Un código de actualización GUID para el instalador MSI. Este código debe mantenerse igual a lo largo de todas tus actualizaciones, de lo contrario, Windows tratará tu actualización como una app diferente y tus usuarios tendrán versiones duplicadas de tu app.

Por defecto, tauri genera este código generando un Uuid v5 usando la cadena <productName>.exe.app.x64 en el espacio de nombres DNS. Puedes usar la CLI de Tauri para generar e imprimir este código por ti, ejecutando tauri inspect wix-upgrade-code.

Se recomienda que establezcas este valor en tu archivo de configuración de tauri para evitar cambios accidentales en tu código de actualización cada vez que desees cambiar el nombre de tu producto.

string | null

Versión del instalador MSI en el formato major.minor.patch.build (build es opcional).

Dado que se requiere una versión válida para el instalador MSI, se derivará de [Config::version] si este campo no está configurado.

El primer campo es la versión mayor y tiene un valor máximo de 255. El segundo campo es la versión menor y tiene un valor máximo de 255. El tercer y cuarto campo tienen un valor máximo de 65,535.

Consulta <https://learn.microsoft.com/en-us/windows/win32/msi/productversion> para más información.

Any of the following:

  • string Un solo idioma a compilar, sin configuración.
  • string[] Una lista de idiomas a compilar, sin configuración.
  • Un mapa de idiomas y su configuración. Permite propiedades adicionales: WixLanguageConfig

Los idiomas a compilar usando WiX.

Configuración para un idioma objetivo para la compilación de WiX.

Ver más: <https://v2.tauri.app/reference/config/#wixlanguageconfig>

Object Properties:

  • localePath

string | null

La ruta a un archivo de configuración regional (.wxl). Consulta <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>.


© 2026 Colaboradores de Tauri. CC-BY / MIT