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.
Formatos de Archivo
Sección titulada “Formatos de Archivo”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.
Configuración Específica de la Plataforma
Sección titulada “Configuración Específica de la Plataforma”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.
Estructura de la Configuración
Sección titulada “Estructura de la Configuración”La configuración se compone de los siguientes objetos:
app: La configuración de Tauribuild: La configuración de compilaciónbundle: Las configuraciones del paqueteplugins: 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
La configuración de App.
{ "enableGTKAppId": false, "macOSPrivateApi": false, "security": { "assetProtocol": { "enable": false, "scope": [] }, "capabilities": [], "dangerousDisableAssetCspModification": false, "freezePrototype": false, "pattern": { "use": "brownfield" } }, "windows": [], "withGlobalTauri": false}La configuración de build.
{ "additionalWatchFolders": [], "removeUnusedCommands": false, "windows": { "staticVCRuntime": true }}La configuración del empaquetador (bundler).
{ "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 }}identifier
Sección titulada «identifier»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 (.).
mainBinaryName
Sección titulada “mainBinaryName”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
plugins
Sección titulada “plugins”La configuración de los plugins.
Default: {}
productName
Sección titulada “productName”string | null patrón de ^[^/\:*?"<>|]+$
Nombre de la aplicación.
version
Sección titulada “version”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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- 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 CLItauri ios buildtiene 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.
Definiciones
Sección titulada «Definiciones»AndroidConfig
Sección titulada “AndroidConfig”Configuración general para el objetivo de Android.
Object Properties:
- autoIncrementVersionCode
- debugApplicationIdSuffix
- minSdkVersion
- versionCode
autoIncrementVersionCode
Sección titulada “autoIncrementVersionCode”boolean
Si se debe incrementar automáticamente el versionCode en cada compilación.
- Si es
true, el generador intentará leer el últimoversionCodedesdetauri.propertiese incrementarlo en 1 para cada compilación. - Si es
falseo no se establece, recurre aversion_codeo 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.
debugApplicationIdSuffix
Sección titulada “debugApplicationIdSuffix”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.
minSdkVersion
Sección titulada “minSdkVersion”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
versionCode
Sección titulada “versionCode”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
AndroidIntentAction
Sección titulada “AndroidIntentAction”One of the following:
"send"ACTION_SEND. <https://developer.android.com/reference/android/content/Intent#ACTION_SEND>"sendMultiple"ACTION_SEND_MULTIPLE. <https://developer.android.com/reference/android/content/Intent#ACTION_SEND_MULTIPLE>"view"ACTION_VIEW. <https://developer.android.com/reference/android/content/Intent#ACTION_SEND>
Acciones intent de Android.
AppConfig
Sección titulada “AppConfig”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
enableGTKAppId
Sección titulada “enableGTKAppId”boolean
Si se establece en true, "identifier" se configurará como el ID de la app de GTK (en sistemas que usen GTK).
macOSPrivateApi
Sección titulada “macOSPrivateApi”boolean
Configuración de API privada de macOS. Habilita la API de fondo transparente y establece la preferencia fullScreenEnabled en true.
security
Sección titulada “security”Configuración de seguridad.
{ "assetProtocol": { "enable": false, "scope": [] }, "capabilities": [], "dangerousDisableAssetCspModification": false, "freezePrototype": false, "pattern": { "use": "brownfield" }}trayIcon
Sección titulada “trayIcon”TrayIconConfig | null
Configuración para el icono de la bandeja de sistema de la aplicación.
windows
Sección titulada «windows»La configuración de ventanas de la aplicación.
Ejemplo:
Sección titulada “Ejemplo:”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: []
withGlobalTauri
Sección titulada “withGlobalTauri”boolean
Si debemos inyectar la API de Tauri en window.__TAURI__ o no.
AppImageConfig
Sección titulada “AppImageConfig”Configuración para paquetes AppImage.
Ver más: <https://v2.tauri.app/reference/config/#appimageconfig>
Object Properties:
- bundleMediaFramework
- files
bundleMediaFramework
Sección titulada “bundleMediaFramework”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: {}
AssetProtocolConfig
Sección titulada “AssetProtocolConfig”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).
El alcance de acceso (access scope) para el protocolo de activos.
Default: []
AssociationExt
Sección titulada “AssociationExt”string
Una extensión para [FileAssociation].
Un . inicial se elimina automáticamente.
BackgroundThrottlingPolicy
Sección titulada “BackgroundThrottlingPolicy”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).
BeforeDevCommand
Sección titulada “BeforeDevCommand”Any of the following:
stringEjecuta el script dado con las opciones por defecto.- Ejecuta el script dado con opciones personalizadas. Propiedades del objeto: - cwd - script (requerido) - wait ##### cwd
string|nullEl directorio de trabajo actual. ##### scriptstringEl script a ejecutar. ##### waitbooleanSitauri devdebe esperar a que el comando termine o no. Por defecto esfalse.
Describe el comando de shell a ejecutar antes de tauri dev.
BuildConfig
Sección titulada “BuildConfig”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
additionalWatchFolders
Sección titulada “additionalWatchFolders”string[]
Rutas adicionales a vigilar en busca de cambios al ejecutar tauri dev.
Default: []
beforeBuildCommand
Sección titulada “beforeBuildCommand”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.
beforeBundleCommand
Sección titulada “beforeBundleCommand”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
Sección titulada “beforeDevCommand”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).
features
Sección titulada “features”string[] | null
Características (features) pasadas a los comandos de cargo.
frontendDist
Sección titulada “frontendDist”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.
removeUnusedCommands
Sección titulada “removeUnusedCommands”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.
windows
Sección titulada «windows»Configuración de compilación específica para Windows.
{ "staticVCRuntime": true}BundleConfig
Sección titulada “BundleConfig”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.
android
Sección titulada “android”Configuración para Android.
{ "autoIncrementVersionCode": false, "minSdkVersion": 24}category
Sección titulada “category”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.
copyright
Sección titulada “copyright”string | null
Una cadena de derechos de autor (copyright) asociada a tu aplicación.
createUpdaterArtifacts
Sección titulada “createUpdaterArtifacts”Generar o no actualizadores y sus firmas
externalBin
Sección titulada “externalBin”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.
fileAssociations
Sección titulada “fileAssociations”FileAssociation[] | null
Tipos de archivo a asociar con la aplicación.
homepage
Sección titulada “homepage”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: []
Configuración para iOS.
{ "minimumSystemVersion": "14.0"}license
Sección titulada “license”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.
licenseFile
Sección titulada “licenseFile”string | null
La ruta al archivo de licencia que se incluirá en los paquetes correspondientes.
Configuración para los paquetes de Linux.
{ "appimage": { "bundleMediaFramework": false, "files": {} }, "deb": { "files": {} }, "rpm": { "epoch": 0, "files": {}, "release": "1" }}longDescription
Sección titulada “longDescription”string | null
Una descripción más larga y multilínea de la aplicación.
Configuración para los paquetes de macOS.
{ "dmg": { "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 } }, "files": {}, "hardenedRuntime": true, "minimumSystemVersion": "10.13"}publisher
Sección titulada “publisher”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.
resources
Sección titulada “resources”BundleResources | null
Recursos de la app a empaquetar. Cada recurso es una ruta a un archivo o directorio. Se admiten patrones glob.
Ejemplos
Sección titulada “Ejemplos”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/>
shortDescription
Sección titulada “shortDescription”string | null
Una breve descripción de tu aplicación.
targets
Sección titulada “targets”Los objetivos de paquete, actualmente admite [“deb”, “rpm”, “appimage”, “nsis”, “msi”, “app”, “dmg”] o “all”.
Default: "all"
useLocalToolsDir
Sección titulada “useLocalToolsDir”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.
windows
Sección titulada «windows»Configuración para los paquetes de 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}BundleResources
Sección titulada “BundleResources”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.
BundleTarget
Sección titulada “BundleTarget”Any of the following:
"all"Empaquetar todos los objetivos.BundleType[] Una lista de objetivos de paquete.BundleTypeUn único objetivo de paquete.
Objetivos a empaquetar. Cada valor no distingue entre mayúsculas y minúsculas.
BundleType
Sección titulada “BundleType”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.
BundleTypeRole
Sección titulada “BundleTypeRole”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
Capability
Sección titulada “Capability”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.
Ejemplo
Sección titulada «Ejemplo»{ "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
description
Sección titulada «description»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.
Ejemplo
Sección titulada «Ejemplo»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.
identifier
Sección titulada «identifier»string
Identificador de la capability.
Ejemplo
Sección titulada «Ejemplo»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
permissions
Sección titulada «permissions»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}.
Ejemplo
Sección titulada «Ejemplo»[ "core:default", "shell:allow-open", "dialog:open", { "identifier": "fs:allow-write-text-file", "allow": [{ "path": "$HOME/test.txt" }] }]platforms
Sección titulada «platforms»Target[] | null
Limita a qué plataformas de destino se aplica esta capability.
Por defecto se dirigen a todas las plataformas.
Ejemplo
Sección titulada «Ejemplo»["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.
Ejemplo
Sección titulada «Ejemplo»{ "urls": ["https://*.mydomain.dev"]}webviews
Sección titulada «webviews»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].
Ejemplo
Sección titulada «Ejemplo»["sub-webview-one", "sub-webview-two"]
windows
Sección titulada «windows»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.
Ejemplo
Sección titulada «Ejemplo»["main"]
CapabilityEntry
Sección titulada “CapabilityEntry”Any of the following:
CapabilityUna capacidad (capability) en línea.stringReferencia 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.
CapabilityRemote
Sección titulada «CapabilityRemote»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.
Ejemplos
Sección titulada “Ejemplos”- “https://*.mydomain.dev”: permite subdominios de mydomain.dev
- “https://mydomain.dev/api/*”: permite cualquier subruta de mydomain.dev/api
Any of the following:
stringpatró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.integerformateado comouint8|integerformateado comouint8|integerformateado comouint8[] máximo de3elementos, mínimo de3elementos Arreglo de colores RGB. Cada valor tiene un mínimo de 0 y un máximo de 255.integerformateado comouint8|integerformateado comouint8|integerformateado comouint8|integerformateado comouint8[] máximo de4elementos, mínimo de4elementos 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
integerformateado comouint8Por defecto:255##### blueintegerformateado comouint8##### greenintegerformateado comouint8##### redintegerformateado comouint8
Any of the following:
stringToda 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>.
CspDirectiveSources
Sección titulada “CspDirectiveSources”Any of the following:
stringUna 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>.
CustomSignCommandConfig
Sección titulada “CustomSignCommandConfig”Any of the following:
stringUna 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. ##### cmdstringEl comando a ejecutar para firmar el binario.
Configuración del comando de firma personalizado.
DebConfig
Sección titulada “DebConfig”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
changelog
Sección titulada “changelog”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>
conflicts
Sección titulada “conflicts”string[] | null
La lista de conflictos de paquetes.
depends
Sección titulada “depends”string[] | null
La lista de dependencias deb en las que confía tu aplicación.
desktopTemplate
Sección titulada “desktopTemplate”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: {}
postInstallScript
Sección titulada “postInstallScript”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>
postRemoveScript
Sección titulada “postRemoveScript”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>
preInstallScript
Sección titulada “preInstallScript”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>
preRemoveScript
Sección titulada “preRemoveScript”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>
priority
Sección titulada “priority”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
provides
Sección titulada “provides”string[] | null
La lista de dependencias que proporciona el paquete.
recommends
Sección titulada “recommends”string[] | null
La lista de dependencias deb que recomienda tu aplicación.
replaces
Sección titulada “replaces”string[] | null
La lista de reemplazos de paquetes.
section
Sección titulada “section”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
DisabledCspModificationKind
Sección titulada “DisabledCspModificationKind”Any of the following:
booleanSi estrue, deshabilita toda modificación de CSP.falsees 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.
DmgConfig
Sección titulada “DmgConfig”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
applicationFolderPosition
Sección titulada “applicationFolderPosition”Posición de la carpeta de aplicaciones en la ventana.
{ "x": 480, "y": 170}appPosition
Sección titulada “appPosition”Posición del archivo de la app en la ventana.
{ "x": 180, "y": 170}background
Sección titulada “background”string | null
Imagen a usar como fondo en el archivo dmg. Formatos aceptados: png/jpg/gif.
windowPosition
Sección titulada “windowPosition”Position | null
Posición de la ventana del volumen en la pantalla.
windowSize
Sección titulada “windowSize”Tamaño de la ventana del volumen.
{ "height": 400, "width": 660}ExportedFileAssociation
Sección titulada “ExportedFileAssociation”La definición de tipo exportada. Se mapea a una entrada UTExportedTypeDeclarations en macOS.
Object Properties:
- conformsTo
- identifier (required)
conformsTo
Sección titulada “conformsTo”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.
identifier
Sección titulada «identifier»string
El identificador único para el tipo exportado. Se mapea a UTTypeIdentifier.
FileAssociation
Sección titulada “FileAssociation”Asociación de archivos
Object Properties:
- androidIntentActionFilters
- contentTypes
- description
- exportedType
- ext (required)
- mimeType
- name
- rank
- role
androidIntentActionFilters
Sección titulada “androidIntentActionFilters”AndroidIntentAction[] | null
Filtros de acción Intent para esta asociación de archivos.
Por defecto se utilizan todos los filtros.
contentTypes
Sección titulada “contentTypes”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].
description
Sección titulada «description»string | null
La descripción de la asociación. Solo Windows. Se muestra en la columna Tipo en el Explorador de Windows.
exportedType
Sección titulada “exportedType”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.
Extensiones de archivo a asociar con esta app. p. ej. ‘png’
mimeType
Sección titulada “mimeType”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-typeen el diccionarioUTTypeTagSpecificationde la entradaUTExportedTypeDeclarationsenInfo.plist. - Android: utilizado como
android:mimeTypeen el elemento<data>de un<intent-filter>enAndroidManifest.xml.
string | null
El nombre. Se mapea a CFBundleTypeName en macOS. Por defecto es ext[0]
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"
El rol de la app con respecto al tipo. Se mapea a CFBundleTypeRole en macOS.
Default: "Editor"
FrontendDist
Sección titulada “FrontendDist”Any of the following:
stringformateado comouriUna URL externa que se debe usar como la URL de aplicación por defecto. En este caso no se incrustan activos en la app.stringRuta 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.
FsScope
Sección titulada “FsScope”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:[]##### denystring[] Una lista de rutas no permitidas por este alcance (scope). Esto tiene prioridad sobre la lista [Self::Scope::allow]. Por defecto:[]##### requireLiteralLeadingDotboolean|nullSi 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 estrueen sistemas Unix yfalseen 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.
HandlerRank
Sección titulada “HandlerRank”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
HeaderConfig
Sección titulada “HeaderConfig”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
Configuración de ejemplo
Sección titulada “Configuración de ejemplo”{ //.. 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.localhostaccess-control-expose-headers: Tauri-Custom-Headercontent-security-policy: default-src 'self'; connect-src ipc: http://ipc.localhost; script-src 'self' 'sha256-Wjjrs6qinmnr+tOry8x8PPwI77eGpUFR3EEGZktjJNs='content-type: text/htmlcross-origin-embedder-policy: require-corpcross-origin-opener-policy: same-origintauri-custom-header: key1 'value1' 'value2'; key2 'value3'timing-allow-origin: https://developer.mozilla.org, https://example.comDado 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 resultanteArray(JS)/Vec\<String\>(Rust): Los elementos se unen mediante “, “ para el valor de encabezado resultanteObject(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
Access-Control-Allow-Credentials
Sección titulada “Access-Control-Allow-Credentials”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>
Access-Control-Allow-Headers
Sección titulada “Access-Control-Allow-Headers”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>
Access-Control-Allow-Methods
Sección titulada “Access-Control-Allow-Methods”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>
Access-Control-Expose-Headers
Sección titulada “Access-Control-Expose-Headers”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>
Access-Control-Max-Age
Sección titulada “Access-Control-Max-Age”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>
Cross-Origin-Embedder-Policy
Sección titulada “Cross-Origin-Embedder-Policy”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>
Cross-Origin-Opener-Policy
Sección titulada “Cross-Origin-Opener-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>
Cross-Origin-Resource-Policy
Sección titulada “Cross-Origin-Resource-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>
Permissions-Policy
Sección titulada “Permissions-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>
Service-Worker-Allowed
Sección titulada “Service-Worker-Allowed”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>
Tauri-Custom-Header
Sección titulada “Tauri-Custom-Header”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
Timing-Allow-Origin
Sección titulada “Timing-Allow-Origin”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>
X-Content-Type-Options
Sección titulada “X-Content-Type-Options”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>
HeaderSource
Sección titulada “HeaderSource”Any of the following:
- Versión
stringen 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
HookCommand
Sección titulada “HookCommand”Any of the following:
stringEjecuta el script dado con las opciones por defecto.- Ejecuta el script dado con opciones personalizadas. Propiedades del objeto: - cwd - script (requerido) ##### cwd
string|nullEl directorio de trabajo actual. ##### scriptstringEl script a ejecutar.
Describe un comando de shell que se ejecutará cuando se active un hook de la CLI.
Identificador
Sección titulada «Identifier»string
IosConfig
Sección titulada “IosConfig”Configuración general para el objetivo de iOS.
Object Properties:
- bundleVersion
- developmentTeam
- frameworks
- infoPlist
- minimumSystemVersion
- template
bundleVersion
Sección titulada “bundleVersion”string | null
La versión de la compilación que identifica una iteración del paquete.
Se traduce a la propiedad CFBundleVersion del paquete.
developmentTeam
Sección titulada “developmentTeam”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.
frameworks
Sección titulada “frameworks”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.
infoPlist
Sección titulada “infoPlist”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.
minimumSystemVersion
Sección titulada “minimumSystemVersion”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"
template
Sección titulada “template”string | null
Una plantilla project.yml personalizada de XcodeGen para usar.
LinuxConfig
Sección titulada “LinuxConfig”Configuración para paquetes de Linux.
Ver más: <https://v2.tauri.app/reference/config/#linuxconfig>
Object Properties:
- appimage
- deb
- rpm
appimage
Sección titulada “appimage”Configuración para el paquete AppImage.
{ "bundleMediaFramework": false, "files": {}}Configuración para el paquete Debian.
{ "files": {}}Configuración para el paquete RPM.
{ "epoch": 0, "files": {}, "release": "1"}LogicalPosition
Sección titulada “LogicalPosition”Estructura de coordenadas de posición.
Object Properties:
- x (required)
- y (required)
number formateado como double
Coordenada X.
number formateado como double
Coordenada Y.
MacConfig
Sección titulada “MacConfig”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
bundleName
Sección titulada “bundleName”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.
bundleVersion
Sección titulada “bundleVersion”string | null
La versión de la compilación que identifica una iteración del paquete.
Se traduce a la propiedad CFBundleVersion del paquete.
Ajustes específicos de DMG.
{ "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 }}entitlements
Sección titulada “entitlements”string | null
Ruta al archivo de entitlements.
exceptionDomain
Sección titulada “exceptionDomain”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: {}
frameworks
Sección titulada “frameworks”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.
hardenedRuntime
Sección titulada “hardenedRuntime”boolean
Si la firma de código (codesign) debe habilitar el hardened runtime (para ejecutables) o no.
Default: true
infoPlist
Sección titulada “infoPlist”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.
minimumSystemVersion
Sección titulada “minimumSystemVersion”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"
providerShortName
Sección titulada “providerShortName”string | null
Nombre corto del proveedor para la notarización.
signingIdentity
Sección titulada “signingIdentity”string | null
Identidad a usar para la firma de código (code signing).
NsisCompression
Sección titulada “NsisCompression”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>
NsisConfig
Sección titulada “NsisConfig”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
compression
Sección titulada “compression”Establece el algoritmo de compresión utilizado para comprimir archivos en el instalador.
Consulta <https://nsis.sourceforge.io/Reference/SetCompressor>
Default: "lzma"
customLanguageFiles
Sección titulada “customLanguageFiles”| 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
displayLanguageSelector
Sección titulada “displayLanguageSelector”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.
headerImage
Sección titulada “headerImage”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.
installerHooks
Sección titulada “installerHooks”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.
Ejemplo
Sección titulada «Ejemplo»!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"!macroendinstallerIcon
Sección titulada “installerIcon”string | null
La ruta a un archivo de icono utilizado como el icono del instalador.
installMode
Sección titulada “installMode”Si la instalación será para todos los usuarios o solo para el usuario actual.
Default: "currentUser"
languages
Sección titulada “languages”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.
minimumWebview2Version
Sección titulada “minimumWebview2Version”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.
sidebarImage
Sección titulada “sidebarImage”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.
startMenuFolder
Sección titulada “startMenuFolder”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
template
Sección titulada “template”string | null
Una plantilla .nsi personalizada a utilizar.
uninstallerHeaderImage
Sección titulada “uninstallerHeaderImage”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.
uninstallerIcon
Sección titulada “uninstallerIcon”string | null
La ruta a un archivo de icono utilizado como icono del desinstalador.
NSISInstallerMode
Sección titulada “NSISInstallerMode”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 registroHKCU."perMachine"Instala la app por defecto en el directorio de la carpetaProgram Filesrequiere acceso de Administrador para la instalación. Los metadatos del instalador se guardarán bajo la ruta de registroHKLM."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 registroHKLMoHKCUsegún la elección del usuario.
Modos de instalación para el instalador NSIS.
Any of the following:
integerformateado comoint64Representa un [i64].numberformateado comodoubleRepresenta un [f64].
Un número ACL válido.
PatternKind
Sección titulada “PatternKind”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
stringEl directorio que contiene el archivo index.html que contiene la aplicación de aislamiento segura. ##### use"isolation"
El patrón de la aplicación.
PermissionEntry
Sección titulada «PermissionEntry»Any of the following:
IdentifierReferencia 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[] |nullDatos que definen lo que está permitido por el alcance. ##### denyValue[] |nullDatos que definen lo que está denegado por el alcance. Esto debe tener prioridad en la lógica de validación. ##### identifierIdentifierIdentificador 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.
PluginConfig
Sección titulada “PluginConfig”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
Position
Sección titulada “Position”Estructura de coordenadas de posición.
Object Properties:
- x (required)
- y (required)
integer formateado como uint32
Coordenada X.
integer formateado como uint32
Coordenada Y.
PreventOverflowConfig
Sección titulada “PreventOverflowConfig”Any of the following:
booleanHabilitar la prevención de desbordamiento o noPreventOverflowMarginHabilitar 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
PreventOverflowMargin
Sección titulada “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)
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
RpmCompression
Sección titulada “RpmCompression”One of the following:
- Compresión Gzip Propiedades del objeto: - level (requerido) - type (requerido) ##### level
integerformateado comouint32Nivel de compresión Gzip ##### type"gzip" - Compresión Zstd Propiedades del objeto: - level (requerido) - type (requerido) ##### level
integerformateado comoint32Nivel de compresión Zstd ##### type"zstd" - Compresión Xz Propiedades del objeto: - level (requerido) - type (requerido) ##### level
integerformateado comouint32Nivel de compresión Xz ##### type"xz" - Compresión Bzip2 Propiedades del objeto: - level (requerido) - type (requerido) ##### level
integerformateado comouint32Nivel 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.
RpmConfig
Sección titulada “RpmConfig”Configuración para paquetes RPM.
Object Properties:
- compression
- conflicts
- depends
- desktopTemplate
- epoch
- files
- obsoletes
- postInstallScript
- postRemoveScript
- preInstallScript
- preRemoveScript
- provides
- recommends
- release
compression
Sección titulada “compression”RpmCompression | null
Algoritmo de compresión y nivel. Por defecto es Gzip con nivel 6.
conflicts
Sección titulada “conflicts”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.
depends
Sección titulada “depends”string[] | null
La lista de dependencias RPM en las que confía tu aplicación.
desktopTemplate
Sección titulada “desktopTemplate”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: {}
obsoletes
Sección titulada “obsoletes”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).
postInstallScript
Sección titulada “postInstallScript”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>
postRemoveScript
Sección titulada “postRemoveScript”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>
preInstallScript
Sección titulada “preInstallScript”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>
preRemoveScript
Sección titulada “preRemoveScript”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>
provides
Sección titulada “provides”string[] | null
La lista de dependencias RPM que proporciona tu aplicación.
recommends
Sección titulada “recommends”string[] | null
La lista de dependencias RPM que recomienda tu aplicación.
release
Sección titulada “release”string
La etiqueta de lanzamiento (release tag) RPM.
Default: "1"
RunnerConfig
Sección titulada “RunnerConfig”Any of the following:
stringUna cadena que especifica el binario a ejecutar.- Un objeto con opciones de configuración avanzadas. Propiedades del objeto: - args - cmd (requerido) - cwd ##### args
string[] |nullArgumentos para pasar al comando. ##### cmdstringEl binario a ejecutar. ##### cwdstring|nullEl directorio de trabajo actual desde el cual ejecutar el comando.
La configuración del ejecutor (runner).
ScrollBarStyle
Sección titulada “ScrollBarStyle”One of the following:
"default"El estilo de la barra de desplazamiento a usar en el webview."fluentOverlay"Barras de desplazamiento superpuestas estilo Fluent UI. Solo Windows Requiere WebView2 Runtime versión 125.0.2535.41 o superior, no hace nada en versiones anteriores, consulta <https://learn.microsoft.com/en-us/microsoft-edge/webview2/release-notes/?tabs=dotnetcsharp#10253541>
El estilo de la barra de desplazamiento a usar en la webview.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- Windows: Esta opción debe tener el mismo valor para todos los webviews que apuntan al mismo directorio de datos.
SecurityConfig
Sección titulada “SecurityConfig”Configuración de seguridad.
Ver más: <https://v2.tauri.app/reference/config/#securityconfig>
Object Properties:
- assetProtocol
- capabilities
- csp
- dangerousDisableAssetCspModification
- devCsp
- freezePrototype
- headers
- pattern
assetProtocol
Sección titulada “assetProtocol”Configuración de protocolo personalizado.
{ "enable": false, "scope": []}capabilities
Sección titulada “capabilities”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
Ejemplo
Sección titulada «Ejemplo»{ "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>.
dangerousDisableAssetCspModification
Sección titulada “dangerousDisableAssetCspModification”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>.
freezePrototype
Sección titulada “freezePrototype”boolean
Congelar el Object.prototype cuando se utiliza el protocolo personalizado.
headers
Sección titulada “headers”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.
pattern
Sección titulada “pattern”El patrón a utilizar.
{ "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.
TitleBarStyle
Sección titulada “TitleBarStyle”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 usarTitleBarStyle::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.
TrayIconConfig
Sección titulada “TrayIconConfig”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
iconAsTemplate
Sección titulada “iconAsTemplate”boolean
Un valor booleano que determina si la imagen representa una imagen template en macOS.
iconPath
Sección titulada “iconPath”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.
menuOnLeftClick
Sección titulada “menuOnLeftClick”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.
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- Linux: No soportado.
Default: true
showMenuOnLeftClick
Sección titulada “showMenuOnLeftClick”boolean
Un valor booleano que determina si el menú debe aparecer cuando el icono de la bandeja de sistema recibe un clic izquierdo.
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- Linux: No soportado.
Default: true
string | null
Título para la bandeja de sistema de macOS
tooltip
Sección titulada “tooltip”string | null
Tooltip del icono de la bandeja de sistema en Windows y macOS
Updater
Sección titulada “Updater”Any of the following:
V1CompatibleGenera actualizadores compatibles con v1 comprimidos heredadosbooleanProducir actualizadores y sus firmas o no
Tipo de actualizador
V1Compatible
Sección titulada “V1Compatible”"v1Compatible", Genera actualizadores compatibles con v1 comprimidos heredados
Genera actualizadores comprimidos heredados compatibles con v1
Any of the following:
nullRepresenta un valor JSON nulo.booleanRepresenta un [bool].NumberRepresenta un [Number] ACL válido.stringRepresenta 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.
WebviewInstallMode
Sección titulada “WebviewInstallMode”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
booleanLe indica al instalador que ejecute el bootstrapper en modo silencioso. Por defecto estrue. 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
booleanLe indica al instalador que ejecute el bootstrapper en modo silencioso. Por defecto estrue. 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
booleanLe indica al instalador que ejecute el instalador en modo silencioso. Por defecto estrue. 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
stringLa ruta al runtime fijo a utilizar. La versión fija se puede descargar en el sitio web oficial. El archivo.cabdebe 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>.
WebviewUrl
Sección titulada “WebviewUrl”Any of the following:
stringformateado comouriUna URL externa. Debe usar los esquemashttpohttps.stringLa porción de la ruta de una URL de la app. Por ejemplo, para cargartauri://localhost/users/john, simplemente puedes proporcionarusers/johnen esta configuración.stringformateado comouriUna URL de protocolo personalizado, por ejemplo,doom://index.html
Una URL para abrir en una ventana webview de Tauri.
WindowConfig
Sección titulada “WindowConfig”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
acceptFirstMouse
Sección titulada “acceptFirstMouse”boolean
Si al hacer clic en una ventana inactiva también se hace clic a través de la webview en macOS.
activityName
Sección titulada “activityName”string | null
El nombre de la actividad de Android a crear para esta ventana.
additionalBrowserArgs
Sección titulada “additionalBrowserArgs”string | null
Define argumentos de navegador adicionales en Windows.
Advertencia
Sección titulada “Advertencia”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.
allowLinkPreview
Sección titulada “allowLinkPreview”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
alwaysOnBottom
Sección titulada “alwaysOnBottom”boolean
Si la ventana siempre debe estar por debajo de otras ventanas.
alwaysOnTop
Sección titulada “alwaysOnTop”boolean
Si la ventana siempre debe estar por encima de otras ventanas.
backgroundColor
Sección titulada “backgroundColor”Color | null
Establece el color de fondo de la ventana y de la webview.
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- 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.
backgroundThrottling
Sección titulada “backgroundThrottling”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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- 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>
browserExtensionsEnabled
Sección titulada “browserExtensionsEnabled”boolean
Si se pueden instalar extensiones de navegador para el proceso webview
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- Windows: Habilita
AreBrowserExtensionsEnableddel entorno WebView2 - MacOS / Linux / iOS / Android - No soportado.
boolean
Si la ventana comienza centrada o no.
closable
Sección titulada “closable”boolean
Si el botón de cierre nativo de la ventana está habilitado o no.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- 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
contentProtected
Sección titulada “contentProtected”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.
Ejemplo:
Sección titulada “Ejemplo:”tauri::Builder::default() .setup(|app| { tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?; Ok(()) });Default: true
createdByActivityName
Sección titulada “createdByActivityName”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.
dataDirectory
Sección titulada “dataDirectory”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
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- Windows: Los WebViews con diferentes valores para configuraciones como
additionalBrowserArgs,browserExtensionsEnabledoscrollBarStyledeben tener diferentes directorios de datos. - macOS / iOS: No soportado, usa
dataStoreIdentifieren su lugar. - Android: No soportado.
dataStoreIdentifier
Sección titulada “dataStoreIdentifier”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.
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- iOS: Soportado desde la versión 17.0+.
- macOS: Soportado desde la versión 14.0+.
- Windows / Linux / Android: No soportado.
decorations
Sección titulada “decorations”boolean
Si la ventana debe tener bordes y barras.
Default: true
devtools
Sección titulada “devtools”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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- macOS: Esto llamará a funciones privadas en macOS.
- Android: Abre
chrome://inspect/#devicesen Chrome para obtener la ventana de devtools. La API devtools deWebViewde Wry no es compatible en Android. - iOS: Abre Safari > Desarrollo > [Nombre de tu dispositivo] > [Tu WebView] para obtener la ventana de devtools.
disableInputAccessoryView
Sección titulada “disableInputAccessoryView”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”.
dragDropEnabled
Sección titulada “dragDropEnabled”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
focusable
Sección titulada “focusable”boolean
Si la ventana será enfocable o no.
Default: true
fullscreen
Sección titulada “fullscreen”boolean
Si la ventana inicia en pantalla completa o no.
generalAutofillEnabled
Sección titulada “generalAutofillEnabled”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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- 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
hiddenTitle
Sección titulada “hiddenTitle”boolean
Si es true, establece que el título de la ventana se oculte en macOS.
incognito
Sección titulada “incognito”boolean
Si la webview debe iniciarse o no en modo incógnito.
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- Android: No soportado.
javascriptDisabled
Sección titulada “javascriptDisabled”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"
limitNavigationsToAppBoundDomains
Sección titulada “limitNavigationsToAppBoundDomains”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:
<plist><dict> <key>WKAppBoundDomains</key> <array> <string>localhost</string> <string>aregistrabledomain.example</string> </array></dict></plist>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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- iOS: Soportado desde la versión 14.0+.
- Linux / Windows / Android / MacOS: No soportado.
maxHeight
Sección titulada “maxHeight”number | null formateado como double
La altura máxima de la ventana en píxeles lógicos.
maximizable
Sección titulada “maximizable”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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- 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
maximized
Sección titulada “maximized”boolean
Si la ventana está maximizada o no.
maxWidth
Sección titulada “maxWidth”number | null formateado como double
El ancho máximo de la ventana en píxeles lógicos.
minHeight
Sección titulada “minHeight”number | null formateado como double
La altura mínima de la ventana en píxeles lógicos.
minimizable
Sección titulada “minimizable”boolean
Si el botón nativo de minimizar de la ventana está habilitado o no.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- Linux / iOS / Android: No soportado.
Default: true
minWidth
Sección titulada “minWidth”number | null formateado como double
El ancho mínimo de la ventana en píxeles lógicos.
noRedirectionBitmap
Sección titulada “noRedirectionBitmap”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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- Windows: This sets the passed parent as an owner window to the window to be created.
From Documentación de ventanas asociadas (owned windows) de MSDN:
- Una ventana asociada siempre está por encima de su propietaria en el orden z (z-order).
- El sistema destruye automáticamente una ventana asociada cuando se destruye su propietaria.
- Una ventana asociada se oculta cuando se minimiza su propietaria.
- Linux: Esto hace que la nueva ventana sea transitoria para el padre, consulta <https://docs.gtk.org/gtk3/method.Window.set_transient_for.html>
- macOS: Esto agrega la ventana como hija del padre, consulta <https://developer.apple.com/documentation/appkit/nswindow/1419152-addchildwindow?language=objc>
preventOverflow
Sección titulada “preventOverflow”PreventOverflowConfig | null
Si se debe evitar o no que la ventana se desborde del área de trabajo (workarea)
Específico de la plataforma
Sección titulada “Específico de la plataforma”- iOS / Android: No soportado.
proxyUrl
Sección titulada “proxyUrl”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://.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- macOS: Requiere el flag de característica
macos-proxyy solo se compila para macOS 14+.
requestedBySceneIdentifier
Sección titulada “requestedBySceneIdentifier”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).
resizable
Sección titulada “resizable”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
Sección titulada “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.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- Windows:
fluentOverlayrequiere 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
Defaulty no realiza ninguna operación.
Default: "default"
boolean
Si la ventana tiene sombra o no.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- Windows:
falseno tiene efecto en ventanas decoradas, la sombra siempre está ACTIVADA (ON).truehará que la ventana sin decoraciones tenga un borde blanco de 1px, y en Windows 11, tendrá esquinas redondeadas.
- Linux: No soportado.
Default: true
skipTaskbar
Sección titulada “skipTaskbar”boolean
Si es true, oculta el icono de la ventana de la barra de tareas en Windows y Linux.
tabbingIdentifier
Sección titulada “tabbingIdentifier”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
Sección titulada “titleBarStyle”El estilo de la barra de título de macOS.
Default: "Visible"
trafficLightPosition
Sección titulada “trafficLightPosition”LogicalPosition | null
La posición de los controles de la ventana en macOS.
Requiere titleBarStyle: Overlay y decorations: true.
transparent
Sección titulada “transparent”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.
La URL de la webview de la ventana.
Default: "index.html"
useHttpsScheme
Sección titulada “useHttpsScheme”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.
Advertencia
Sección titulada “Advertencia”Cambiar este valor entre lanzamientos cambiará la ubicación de IndexedDB, cookies y localstorage y tu app no podrá acceder a los datos anteriores.
userAgent
Sección titulada “userAgent”string | null
El agente de usuario (user agent) para la webview
visible
Sección titulada “visible”boolean
Si la ventana es visible o no.
Default: true
visibleOnAllWorkspaces
Sección titulada “visibleOnAllWorkspaces”boolean
Si la ventana debe ser visible en todos los espacios de trabajo o escritorios virtuales.
Específico de la plataforma
Sección titulada “Específico de la plataforma”- Windows / iOS / Android: No soportado.
number formateado como double
El ancho de la ventana en píxeles lógicos.
Default: 800
windowClassname
Sección titulada “windowClassname”string | null
El nombre de la clase de ventana creada en Windows para crear la ventana. Solo Windows.
windowEffects
Sección titulada “windowEffects”WindowEffectsConfig | null
Efectos de ventana.
Requiere que la ventana sea transparente.
Específico de la plataforma:
Sección titulada “Específico de plataforma:”- Windows: Si usas decoraciones o sombras, es posible que desees probar esta solución alternativa <https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891>
- Linux: No soportado
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
zoomHotkeysEnabled
Sección titulada “zoomHotkeysEnabled”boolean
Si el zoom de página mediante atajos de teclado está habilitado
Específico de la plataforma:
Sección titulada “Específico de plataforma:”-
Windows: Controla la configuración
IsZoomControlEnabledde 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 permisowebview:allow-set-webview-zoom -
Android / iOS: No soportado.
WindowEffect
Sección titulada “WindowEffect”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
WindowEffectsConfig
Sección titulada “WindowEffectsConfig”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.
effects
Sección titulada “effects”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
WindowEffectState
Sección titulada “WindowEffectState”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>
WindowsBuildConfig
Sección titulada “WindowsBuildConfig”Configuración de compilación específica para Windows.
Object Properties:
- staticVCRuntime
staticVCRuntime
Sección titulada “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
WindowsConfig
Sección titulada “WindowsConfig”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
allowDowngrades
Sección titulada “allowDowngrades”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
bundleVCRuntime
Sección titulada “bundleVCRuntime”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.
certificateThumbprint
Sección titulada “certificateThumbprint”string | null
Especifica el hash SHA1 del certificado de firma.
digestAlgorithm
Sección titulada “digestAlgorithm”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.
minimumWebview2Version
Sección titulada “minimumWebview2Version”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.
signCommand
Sección titulada “signCommand”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.
timestampUrl
Sección titulada “timestampUrl”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
Sección titulada “webviewInstallMode”El modo de instalación para el entorno de ejecución (runtime) de Webview2.
{ "silent": true, "type": "downloadBootstrapper"}WixConfig | null
Configuración para el MSI generado con WiX.
WixConfig
Sección titulada “WixConfig”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
bannerPath
Sección titulada “bannerPath”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.
componentGroupRefs
Sección titulada “componentGroupRefs”string[]
Los id del elemento ComponentGroup que deseas referenciar desde los fragmentos.
Default: []
componentRefs
Sección titulada “componentRefs”string[]
Los id del elemento Component que deseas referenciar desde los fragmentos.
Default: []
dialogImagePath
Sección titulada “dialogImagePath”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.
enableElevatedUpdateTask
Sección titulada “enableElevatedUpdateTask”boolean
Crear una tarea de actualización elevada dentro del Programador de tareas de Windows.
featureGroupRefs
Sección titulada “featureGroupRefs”string[]
Los id del elemento FeatureGroup que deseas referenciar desde los fragmentos.
Default: []
featureRefs
Sección titulada “featureRefs”string[]
Los id del elemento Feature que deseas referenciar desde los fragmentos.
Default: []
fipsCompliant
Sección titulada “fipsCompliant”boolean
Habilita algoritmos compatibles con FIPS.
También se puede habilitar a través de la variable de entorno TAURI_BUNDLER_WIX_FIPS_COMPLIANT.
fragmentPaths
Sección titulada “fragmentPaths”string[]
Una lista de rutas a archivos .wxs con fragmentos de WiX a utilizar.
Default: []
language
Sección titulada “language”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"
mergeRefs
Sección titulada “mergeRefs”string[]
Los id del elemento Merge que deseas referenciar desde los fragmentos.
Default: []
template
Sección titulada “template”string | null
Una plantilla .wxs personalizada a utilizar.
upgradeCode
Sección titulada “upgradeCode”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.
version
Sección titulada “version”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.
WixLanguage
Sección titulada “WixLanguage”Any of the following:
stringUn 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.
WixLanguageConfig
Sección titulada “WixLanguageConfig”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
localePath
Sección titulada “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