* feat(bundle): add --no-sign flag to skip code signing in bundling process
- Introduce a
o_sign option in bundle settings to allow skipping code signing
- Update macOS and Windows bundler implementations to respect the flag
- Wire up CLI option --no-sign to control signing behavior during bundling
- Add necessary config and type changes to propagate the flag throughout bundler
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* ci: added yml for github action testing
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* fix: fixed field 'digest_algorithm' is already declared error
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* ci: updated to test the new features as well
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* ci: fixed yml issue
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* fix: fixed missing parameter issue in android sign.rs
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* chore: apply linting
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* chore: remove redundant files
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* chore: revert indentations
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* fix: added parameters to ios mobile build.rs
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* docs: updated documentation for settigs.rs
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* docs(cli): add documentation for
o_sign flag in build options
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* chore: apply cargo fmt
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* docs: added CHANGES.md
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* refactor(bundler): make
o_sign private and add getter
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* fix: minor error
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* refactor: revert build_benchmark_jsons.rs
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
* impl for macos too
* fix ci
* fix windows build
---------
Signed-off-by: ShigrafS <shigrafsalik@proton.me>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
currently we only install Rust targets for mobile when initializing the projects.
Users can commit the Android/iOS projects, so running the init command is not a requirement to develop mobile apps. This change ensures the Rust targets are installed before trying to compile them.
* feat(cli): check plugin versions for incompatibilities
check core plugin versions for incompatibilities between Cargo and NPM releases
a plugin NPM/cargo version is considered "incompatible" if their major or minor versions are not equal
on dev we show an warning
on build we error out (with a `--ignore-incompatible-plugins` flag to prevent that)
this is an idea from @oscartbeaumont
we've seen several plugin changes that require updates for both the cargo and the NPM releases of a plugin, and if they are not in sync, the functionality does not work
e.g. https://github.com/tauri-apps/plugins-workspace/pull/2573 where the change actually breaks the app updater if you miss the NPM update
* Use list to get multiple package versions at once
* Fix for older rust versions
* Clippy
* Support yarn classic
* Support yarn berry
* Use `.cmd` only for `npm`, `yarn`, `pnpm`
* Use yarn list without --pattern
* rename
* Extract function `check_incompatible_packages`
* Check `tauri` <-> `@tauri-apps/api`
* incompatible -> mismatched
* run build check in parallel
* rename struct
* Switch back to use sync check and add todo
* Extract to function `cargo_manifest_and_lock`
---------
Co-authored-by: Tony <legendmastertony@gmail.com>
* feat: add `--root-certificate-path` option for mobile dev
lets you use a HTTPS development server
example usage:
```
cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch feat/mobile-dev-cert
cargo tauri android dev --open --root-certificate-path "/Users/lucas/Library/Application Support/mkcert/rootCA.pem" --features tauri/rustls-tls
```
* Apply suggestions from code review
Co-authored-by: Fabian-Lars <github@fabianlars.de>
---------
Co-authored-by: Fabian-Lars <github@fabianlars.de>
* feat: add option to not wait on notarization to finish
* cli arg istead of config
* changefile
* fix serde
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* feat: add config option for custom watch folders
* fix: cargo clippy changes
* chore: remove file
* fix: ios dev
* docs: clarify absolute allowed
* refactor: rename variable
* fix: review suggestions
* fix: resolve paths
* fixL use canonicalize
* chore: add changefile
* chore: add error if cant canonicalize
* reformat changelog
* Update .changes/additional-watch-folders.md
* Update crates/tauri-cli/src/interface/rust.rs
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
* Revert "Update .changes/additional-watch-folders.md"
This reverts commit 98186b1a89.
* Also bump `@tauri-apps/cli`
* Apparently I'm so used to a higher rust version
* Revert "Apparently I'm so used to a higher rust version"
This reverts commit ea1d89e2d3.
* Need to check for existence for abs paths as well
---------
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
* Update config.schema.json
* Add RunnerConfig for customizable build runner
Replaces runner String with RunnerConfig in CLI and config, allowing advanced runner configuration via string or object with cmd, cwd, and args. Updates schema and usage to support new format, and adds tests for serialization, deserialization, and API. Enables more flexible build and run command customization.
* Create runner-object-config.md
* Remove unused RunnerConfig import in tests
Cleaned up the test module in config.rs by removing the unused RunnerConfig import from two test functions.
* Fix tests failing
Updates related tests in tauri-utils to improve readability and maintain consistency. Minor import reordering in tauri-cli for clarity.
* Move RunnerConfig enum and impls above BuildConfig
Relocated the RunnerConfig enum and its associated implementations to appear before the BuildConfig definition. This improves code organization and logical grouping of configuration-related types.
* fix: dont depend on private schemars api
* tauri-cli/deps: update kuchikiki and html5ever
tauri-utils/deps: update kuchikiki and html5ever
tauri-runtime-wry/deps: update wry to match kuchikiki and html5ever versions
* fix: specify exact patch version of schemars
Without this, cargo resolves the patch version of schemars to one that
does not include the _private module on which tauri-utils v1 depends,
which is a dependency of tauri-cli. As a result of this, the build breaks.
* tauri-utils/fix: inline tauri-utils v1 config module
* deps: upgrade and pin schemars 0.8.21 to pick up crate patch in Cargo.toml
* update tao, wry
* lint, license
* lint
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* fix(cli): read original identifier to fix mobile options reading
the iOS and Android CLI commands leverage an android_studio_script/xcode_script that is executed by the native IDE or build tool. This script reads the Tauri configuration to find the app identifier used to communicate with the parent Tauri CLI process to read CLI options.
The communication is broken when the `--config` arg is used, since the IDE script does not have access to that value before reaching the parent process, which is impossible without knowing the actual identifier used.
To bypass this we'll agree on using the original identifier. This obviously won't work if the original tauri.conf.json do not have an identifier, so we error out in this case
* fix build, lint
* refactor: put dynamic acl to a feature
* Add change file
* Tweak remove_unused_commands's docs
* License header
* Document the feature
* Merge remote-tracking branch 'upstream/dev' into dynamic-acl-feature
* Use a inner non generic fn for add_capability
* Clippy and macro stability notice
* Merge remote-tracking branch 'upstream/dev' into dynamic-acl-feature
* Format
* feat(cli): enhance iOS bundle version formatting
follow-up for #13030 and https://github.com/tauri-apps/cargo-mobile2/pull/450
the bundle version validation has been updated, now it can actually handle one or two integers (e.g. `100` or `10.7`) instead of just full triple semver strings (e.g. `10.7.1`).
* lint
* fix(cli): iOS dev broken on Xcode 16.3, closes#13128
Looks like we cannot use the arm64-sim custom architecture on Xcode 16.3, as it incorrectly appends the -sim suffix on some clang build scripts which ends up with an invalid target triple.
Currently we do not have automation to update Xcode/Android projects, so a manual intervention is required by our users, either recreating the project or modifying it manually (the arm64-sim arch must be removed and all its references).
ref https://github.com/tauri-apps/cargo-mobile2/pull/445
* fix dev on macOS with intel chip
* chore: fix a few internal docs
* Remove label clone
* Unused allow lint
* No way clippy just updated
* `cargo clippy --fix -- -W clippy::redundant_clone`
* format