@tauri-apps/cli 2.12.1 → 2.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/config.schema.json +4 -4
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.12.2]
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- [`c48e1ca89`](https://www.github.com/tauri-apps/tauri/commit/c48e1ca891a3b82770b6b03f87eba740344cf2f1) ([#16246](https://www.github.com/tauri-apps/tauri/pull/16246)) On iOS, mark the Swift `@_cdecl` entry points that Rust links against as `public` (in the iOS API and in the plugin templates), so release builds made with Xcode 27 keep them global and link.
|
|
8
|
+
|
|
9
|
+
### Dependencies
|
|
10
|
+
|
|
11
|
+
- Upgraded to `tauri-cli@2.12.2`
|
|
12
|
+
- [`fd319dd43`](https://www.github.com/tauri-apps/tauri/commit/fd319dd432e36748483ae93e6cdea1c44a66fe79) Update `base64` to 0.23.
|
|
13
|
+
|
|
3
14
|
## [2.12.1]
|
|
4
15
|
|
|
5
16
|
### Enhancements
|
package/config.schema.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://schema.tauri.app/config/2.12.
|
|
3
|
+
"$id": "https://schema.tauri.app/config/2.12.3",
|
|
4
4
|
"title": "Config",
|
|
5
5
|
"description": "The Tauri configuration object.\n It is read from a file where you can define your frontend assets,\n configure the bundler and define a tray icon.\n\n The configuration file is generated by the\n [`tauri init`](https://v2.tauri.app/reference/cli/#init) command that lives in\n your Tauri application source directory (src-tauri).\n\n Once generated, you may modify it at will to customize your Tauri application.\n\n ## File Formats\n\n By default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\n Tauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively.\n The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`.\n The TOML file name is `Tauri.toml`.\n\n ## Platform-Specific Configuration\n\n In addition to the default configuration file, Tauri can\n read a platform-specific configuration from `tauri.linux.conf.json`,\n `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json`\n (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used),\n which gets merged with the main configuration object.\n\n ## Configuration Structure\n\n The configuration is composed of the following objects:\n\n - [`app`](#appconfig): The Tauri configuration\n - [`build`](#buildconfig): The build configuration\n - [`bundle`](#bundleconfig): The bundle configurations\n - [`plugins`](#pluginconfig): The plugins configuration\n\n Example tauri.config.json file:\n\n ```json\n {\n \"productName\": \"tauri-app\",\n \"version\": \"0.1.0\",\n \"build\": {\n \"beforeBuildCommand\": \"\",\n \"beforeDevCommand\": \"\",\n \"devUrl\": \"http://localhost:3000\",\n \"frontendDist\": \"../dist\"\n },\n \"app\": {\n \"security\": {\n \"csp\": null\n },\n \"windows\": [\n {\n \"fullscreen\": false,\n \"height\": 600,\n \"resizable\": true,\n \"title\": \"Tauri App\",\n \"width\": 800\n }\n ]\n },\n \"bundle\": {},\n \"plugins\": {}\n }\n ```",
|
|
6
6
|
"type": "object",
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"type": "object",
|
|
171
171
|
"properties": {
|
|
172
172
|
"windows": {
|
|
173
|
-
"description": "The app windows configuration.\n\n ## Example:\n\n To create a window at app startup\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n If not specified, the window's label (its identifier) defaults to \"main\",\n you can use this label to get the window through\n `app.get_webview_window` in Rust or `WebviewWindow.getByLabel` in JavaScript\n\n When working with multiple windows, each window will need an unique label\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"label\": \"main\", \"width\": 800, \"height\": 600 },\n { \"label\": \"secondary\", \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n You can also set `create` to false and use this config through the Rust APIs\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"create\": false, \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n and use it like this\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```",
|
|
173
|
+
"description": "The app windows configuration.\n\n ## Example:\n\n To create a window at app startup\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n If not specified, the window's label (its identifier) defaults to \"main\",\n you can use this label to get the window through\n `app.get_webview_window` in Rust or `WebviewWindow.getByLabel` in JavaScript\n\n When working with multiple windows, each window will need an unique label\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"label\": \"main\", \"width\": 800, \"height\": 600 },\n { \"label\": \"secondary\", \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n You can also set `create` to false and use this config through the Rust APIs\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"create\": false, \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n and use it like this\n\n ```rust,no_run\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```",
|
|
174
174
|
"default": [],
|
|
175
175
|
"type": "array",
|
|
176
176
|
"items": {
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
"type": "boolean"
|
|
225
225
|
},
|
|
226
226
|
"appDirectoriesOverride": {
|
|
227
|
-
"description": "Overrides the directories returned by the `app_*_dir` path APIs (`app_config_dir`, `app_data_dir`,\n `app_local_data_dir`, `app_cache_dir` and `app_log_dir`) and the matching `$APPCONFIG`, `$APPDATA`,\n `$APPLOCALDATA`, `$APPCACHE` and `$APPLOG` base directory variables.\n\n This is useful for portable apps that keep all of their data next to the executable,\n and for apps that want their app directories in a location they choose, such as `$DOCUMENT/my-app`.\n Everything that resolves paths through these APIs follows the override, including Tauri itself\n (the default webview data directory on Windows and Linux) and plugins,\n so the storage locations do not need to be configured one by one.\n The only exception is a window's `dataDirectory` config, which is not affected.\n\n It can also isolate the data of a development build from an installed version of the app,\n though a distinct `identifier` for development builds achieves that while keeping the production directory layout.\n\n The value is either a single path used as the root of every app directory\n (config, data and local data resolve to the root itself, cache to `<root>/caches` and log to `<root>/logs`),\n or an object that overrides individual directories (`config`, `data`, `localData`, `cache` and `log`),\n each resolving to exactly the configured path. Directories that are not listed in the object keep their default location.\n\n Each path is resolved as follows:\n\n - A path starting with a base directory variable is resolved relative to that directory.\n The supported variables are `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`,\n `$DOWNLOAD`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$TEMP` and `$VIDEO`.\n `..` components are kept, so `$DATA/../my-app` refers to a sibling of the data directory.\n - An absolute path is used as is.\n - Any other path is resolved relative to the directory containing the executable,\n which must be writable, see the platform-specific notes below.\n\n ## Examples\n\n Keep all data in an `app-data` folder next to the executable, for a portable build:\n\n ```json\n {\n \"app\": {\n \"appDirectoriesOverride\": \"./app-data\"\n }\n }\n ```\n\n Only move the logs and the cache:\n\n ```json\n {\n \"app\": {\n \"appDirectoriesOverride\": {\n \"log\": \"$DATA/my-app/logs\",\n \"cache\": \"$CACHE/my-app\"\n }\n }\n }\n ```\n\n Set the override at runtime, for instance from an environment variable, a command line flag\n or a directory picked by the user, by modifying the config returned by `tauri::generate_context!()`\n before building the app:\n\n ```rust\n use tauri::utils::config::AppDirectoriesOverride;\n\n fn main() {\n let mut context = tauri::generate_context!();\n\n if let Ok(data_dir) = std::env::var(\"MY_APP_DATA_DIR\") {\n context.config_mut().app.app_directories_override =\n Some(AppDirectoriesOverride::Root(data_dir.into()));\n }\n\n tauri::Builder::default()\n .run(context)\n .expect(\"error while running tauri application\");\n }\n ```\n\n ## Security\n\n Scopes and permissions that use the `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE` and `$APPLOG`\n variables follow the override, so the configured paths must be directories dedicated to the app.\n A single root is used as is for the config, data and local data directories, so a root that is not dedicated\n to the app, such as `\"./\"` or `\"$DOCUMENT\"`, extends those scopes to everything it contains.\n With `\"./\"`, `fs:default` (which allows reading the app directories recursively) lets the webview read\n every file next to the executable, including anything else in the folder the app was run from,\n such as the downloads folder. If the app also grants write access to an app directory, a compromised webview\n (e.g. through XSS) can replace files next to the executable, such as dropping a DLL that Windows loads\n from the executable's directory on the next launch, leading to code execution.\n Always point the override to a subfolder owned by the app, such as `\"./app-data\"` or `\"$DOCUMENT/my-app\"`.\n\n ## Platform-specific\n\n A path relative to the executable only works where the executable's directory is writable:\n portable builds, `tauri dev` builds in the `target` directory and the cases listed below.\n Everywhere else every write to an app directory fails at runtime, so installed apps should use\n a base directory variable or an absolute path instead. Unless every distribution of the app is portable,\n keep relative paths out of the shared configuration and apply them to the portable build flavor only,\n for instance with the CLI's `--config` flag, which accepts a JSON file or an inline JSON string:\n\n ```sh\n tauri build --config '{ \"app\": { \"appDirectoriesOverride\": \"./app-data\" } }'\n ```\n\n - **Linux**: Relative paths only work for AppImages, where they are resolved relative to the AppImage file,\n as long as it is kept in a writable directory. `.deb` and `.rpm` packages install the executable to `/usr/bin`.\n - **macOS**: Relative paths are resolved next to the `.app` bundle. This does not work for installed apps,\n since `/Applications` is not writable for standard users, nor for bundles downloaded from the internet,\n which run from a random read-only location (App Translocation) until the user moves them out of the quarantined folder.\n - **Windows**: Relative paths also work for per-user NSIS installers,\n but not for per-machine installers in `Program Files`.\n - **Android / iOS**: Relative paths are not supported, since there is no writable directory next to the executable.\n Use a base directory variable or an absolute path instead. `$DESKTOP` is not available on Android.",
|
|
227
|
+
"description": "Overrides the directories returned by the `app_*_dir` path APIs (`app_config_dir`, `app_data_dir`,\n `app_local_data_dir`, `app_cache_dir` and `app_log_dir`) and the matching `$APPCONFIG`, `$APPDATA`,\n `$APPLOCALDATA`, `$APPCACHE` and `$APPLOG` base directory variables.\n\n This is useful for portable apps that keep all of their data next to the executable,\n and for apps that want their app directories in a location they choose, such as `$DOCUMENT/my-app`.\n Everything that resolves paths through these APIs follows the override, including Tauri itself\n (the default webview data directory on Windows and Linux) and plugins,\n so the storage locations do not need to be configured one by one.\n The only exception is a window's `dataDirectory` config, which is not affected.\n\n It can also isolate the data of a development build from an installed version of the app,\n though a distinct `identifier` for development builds achieves that while keeping the production directory layout.\n\n The value is either a single path used as the root of every app directory\n (config, data and local data resolve to the root itself, cache to `<root>/caches` and log to `<root>/logs`),\n or an object that overrides individual directories (`config`, `data`, `localData`, `cache` and `log`),\n each resolving to exactly the configured path. Directories that are not listed in the object keep their default location.\n\n Each path is resolved as follows:\n\n - A path starting with a base directory variable is resolved relative to that directory.\n The supported variables are `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`,\n `$DOWNLOAD`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$TEMP` and `$VIDEO`.\n `..` components are kept, so `$DATA/../my-app` refers to a sibling of the data directory.\n - An absolute path is used as is.\n - Any other path is resolved relative to the directory containing the executable,\n which must be writable, see the platform-specific notes below.\n\n ## Examples\n\n Keep all data in an `app-data` folder next to the executable, for a portable build:\n\n ```json\n {\n \"app\": {\n \"appDirectoriesOverride\": \"./app-data\"\n }\n }\n ```\n\n Only move the logs and the cache:\n\n ```json\n {\n \"app\": {\n \"appDirectoriesOverride\": {\n \"log\": \"$DATA/my-app/logs\",\n \"cache\": \"$CACHE/my-app\"\n }\n }\n }\n ```\n\n Set the override at runtime, for instance from an environment variable, a command line flag\n or a directory picked by the user, by modifying the config returned by `tauri::generate_context!()`\n before building the app:\n\n ```rust,no_run\n use tauri::utils::config::AppDirectoriesOverride;\n\n fn main() {\n // on an actual app, remove the string argument\n let mut context = tauri::generate_context!(\"../tauri/test/fixture/src-tauri/tauri.conf.json\");\n\n if let Ok(data_dir) = std::env::var(\"MY_APP_DATA_DIR\") {\n context.config_mut().app.app_directories_override =\n Some(AppDirectoriesOverride::Root(data_dir.into()));\n }\n\n tauri::Builder::default()\n .run(context)\n .expect(\"error while running tauri application\");\n }\n ```\n\n ## Security\n\n Scopes and permissions that use the `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE` and `$APPLOG`\n variables follow the override, so the configured paths must be directories dedicated to the app.\n A single root is used as is for the config, data and local data directories, so a root that is not dedicated\n to the app, such as `\"./\"` or `\"$DOCUMENT\"`, extends those scopes to everything it contains.\n With `\"./\"`, `fs:default` (which allows reading the app directories recursively) lets the webview read\n every file next to the executable, including anything else in the folder the app was run from,\n such as the downloads folder. If the app also grants write access to an app directory, a compromised webview\n (e.g. through XSS) can replace files next to the executable, such as dropping a DLL that Windows loads\n from the executable's directory on the next launch, leading to code execution.\n Always point the override to a subfolder owned by the app, such as `\"./app-data\"` or `\"$DOCUMENT/my-app\"`.\n\n ## Platform-specific\n\n A path relative to the executable only works where the executable's directory is writable:\n portable builds, `tauri dev` builds in the `target` directory and the cases listed below.\n Everywhere else every write to an app directory fails at runtime, so installed apps should use\n a base directory variable or an absolute path instead. Unless every distribution of the app is portable,\n keep relative paths out of the shared configuration and apply them to the portable build flavor only,\n for instance with the CLI's `--config` flag, which accepts a JSON file or an inline JSON string:\n\n ```sh\n tauri build --config '{ \"app\": { \"appDirectoriesOverride\": \"./app-data\" } }'\n ```\n\n - **Linux**: Relative paths only work for AppImages, where they are resolved relative to the AppImage file,\n as long as it is kept in a writable directory. `.deb` and `.rpm` packages install the executable to `/usr/bin`.\n - **macOS**: Relative paths are resolved next to the `.app` bundle. This does not work for installed apps,\n since `/Applications` is not writable for standard users, nor for bundles downloaded from the internet,\n which run from a random read-only location (App Translocation) until the user moves them out of the quarantined folder.\n - **Windows**: Relative paths also work for per-user NSIS installers,\n but not for per-machine installers in `Program Files`.\n - **Android / iOS**: Relative paths are not supported, since there is no writable directory next to the executable.\n Use a base directory variable or an absolute path instead. `$DESKTOP` is not available on Android.",
|
|
228
228
|
"anyOf": [
|
|
229
229
|
{
|
|
230
230
|
"$ref": "#/definitions/AppDirectoriesOverride"
|
|
@@ -247,7 +247,7 @@
|
|
|
247
247
|
"type": "string"
|
|
248
248
|
},
|
|
249
249
|
"create": {
|
|
250
|
-
"description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```",
|
|
250
|
+
"description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust,no_run\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```",
|
|
251
251
|
"default": true,
|
|
252
252
|
"type": "boolean"
|
|
253
253
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tauri-apps/cli",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.2",
|
|
4
4
|
"description": "Command line interface for building Tauri apps",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"funding": {
|
|
@@ -65,16 +65,16 @@
|
|
|
65
65
|
"tauri": "node ./tauri.js"
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
|
-
"@tauri-apps/cli-linux-x64-gnu": "2.12.
|
|
69
|
-
"@tauri-apps/cli-win32-x64-msvc": "2.12.
|
|
70
|
-
"@tauri-apps/cli-darwin-x64": "2.12.
|
|
71
|
-
"@tauri-apps/cli-darwin-arm64": "2.12.
|
|
72
|
-
"@tauri-apps/cli-linux-arm64-gnu": "2.12.
|
|
73
|
-
"@tauri-apps/cli-linux-arm64-musl": "2.12.
|
|
74
|
-
"@tauri-apps/cli-linux-arm-gnueabihf": "2.12.
|
|
75
|
-
"@tauri-apps/cli-linux-x64-musl": "2.12.
|
|
76
|
-
"@tauri-apps/cli-linux-riscv64-gnu": "2.12.
|
|
77
|
-
"@tauri-apps/cli-win32-ia32-msvc": "2.12.
|
|
78
|
-
"@tauri-apps/cli-win32-arm64-msvc": "2.12.
|
|
68
|
+
"@tauri-apps/cli-linux-x64-gnu": "2.12.2",
|
|
69
|
+
"@tauri-apps/cli-win32-x64-msvc": "2.12.2",
|
|
70
|
+
"@tauri-apps/cli-darwin-x64": "2.12.2",
|
|
71
|
+
"@tauri-apps/cli-darwin-arm64": "2.12.2",
|
|
72
|
+
"@tauri-apps/cli-linux-arm64-gnu": "2.12.2",
|
|
73
|
+
"@tauri-apps/cli-linux-arm64-musl": "2.12.2",
|
|
74
|
+
"@tauri-apps/cli-linux-arm-gnueabihf": "2.12.2",
|
|
75
|
+
"@tauri-apps/cli-linux-x64-musl": "2.12.2",
|
|
76
|
+
"@tauri-apps/cli-linux-riscv64-gnu": "2.12.2",
|
|
77
|
+
"@tauri-apps/cli-win32-ia32-msvc": "2.12.2",
|
|
78
|
+
"@tauri-apps/cli-win32-arm64-msvc": "2.12.2"
|
|
79
79
|
}
|
|
80
80
|
}
|