* Migrate from objc/cocoa to objc2
* Update crates/tauri-runtime-wry/src/webview.rs
---------
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
* apply version updates
* bundler back to 2.0.0-rc
---------
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* feat(cli): add log plugin to the app template
The log plugin is really important for mobile development - without it you don't have a clue about logs and stdout for iOS apps
* patch tauri dep for local testing
* clippy
the checkPermissions command is also a PermissionCallback, and the annotation check is incorrectly ignoring that fact, so the requestPermissions is never resolved for the geolocation plugin
* remove dbg! in resources test
* use methods from `fs` and `env` qualified
* share `ACL_MANIFESTS_FILE_NAME` and `CAPABILITIES_FILE_NAME` consts across crates
* simplifiy `Manifest::new` code for better readability
* move reading global api scripts logic next to the function that defines it
* [tauri-build] move acl logic from lib.rs to acl.rs
* use const value for schema instead of enum value with a single variant
* remove unnecessary info from permissions hover
* move related functions next to each other & improve readability of others
* use methods from `fs` and `env` qualified
* fix warning, unused return in test
* document some functions
* improve generated schema for better scope schema completion, simplify, reorganize and document the logic
previously if you had `fs` and `http` plugins added in a project
and then try to write an extended permission for `fs:allow-app-meta`
```json
{
"identifier": "fs:allow-app-meta",
"allow": [ <here> ]
}
```
and even though identifier is from `fs` plugin,
the JSON schema suggests `path` and `url`.
Now it will only suggest relevant field which is `path`
* resolve permissions from other plugins, generate `core:default` as a normal set instead of special logic
* move `PERMISSION_SCHEMAS_FOLDER_NAME` to acl module
* use gneric trait because of MSRV
* ensure `gen/schemas` dir is created
* clippy
* fix(core): Use productName for FileDescription
fixes#10968fixes#10890
* just unwrap since winres will panic anyway or use the cargo.toml description which we don't want
* regen
* nsis
The upgrade code generation was changed due to an accidental regression in #9375. Previously `UpgradeCode` was calculated using the main binary name which was `<product_name>.exe`, but #9375 changed the default main binary name to `<cargo-crate-name>.exe` and thus a different UpgradeCode was generetad.
This PR reverts this change to use product name for `UpgradeCode` generation.
* refactor(core): change `Assets::iter` item to use `Cow`
make the iterator more flexible to support Assets implementations that do not rely on static assets
* fix test?
* lint
* lint
* clippy again
having duplicate capability identifier lead to unexpected behavior because one of the capabilities gets ignored.
With this change the build script now fails when this happens.
- the Xcode project now uses a fixed output library name, which means changes to the Cargo.toml lib name won't affect it (backwards compatible change, we're checking if this new format is being used or not by reading the project.pbxproj)
- sync config identifier with the pbxproj
- sync development team config with the pbxproj
the sync runs both on dev and on build
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* generate `Context` inside a thread
fix#9882
this is a workaround for #9882 due to windows having a small
stack size for the main thread (1MiB) versus other platforms which
have 8MiB. the true fix would be to lower the generated code
stack size, but with lots a plugins, there are lots of ACL
configurations.
* add change file [skip ci]
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
* feat(cli/info): include plugins info
closes#10682
* header
* resolve package manager once
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
* chore: cleanup unnecessary scripts and files
- Removed `.cargo/config` and `__TAURI_WORKSPACE__` workaround
- Removed husky and precommit hooks
- Remove unecessary script files
- Moved `.scripts/covector/sync-cli-metadata.js` to `.scripts/ci/sync-cli-metadata.js`
- Moved `app-icon.png` to `.github/icon.png`
- Enhanced has-diff.sh script to output which files are modified
* lock file
* bring back __TAURI_WORKSPACE__
* add change file
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
changes the CLI `add` command to match the CLI major and pre requirements for known plugins
this is required because right now adding the deep-link plugin installs the v1 plugin (latest version known by cargo as the v2 is still in RC), even though we're running the v2 CLI
* feat(core): enhance IPC permission error message
- include more information about current URL and allowed origins
- enhance formatting of the error message
* plugin not found & command not found
* lint
I noticed the plugin build fails on older Swift (tested on macOS 12) because the default minimum required macOS version (10.10 in my case) is older than `v10_13` which is set by the Tauri iOS package (and also swift-rs).
So the plugins must explicitly define a minimum macOS version too.
* fix(android): avoid rebuilds if nothing changed
Unconditionally overwriting files where the build reruns if they changed
leads to rebuilds every time.
Only overwrite a file if its content is different to not rebuild in such
a case.
* use write_if_changed utils
* use existing function
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* feat(ios): add a new cli option to dev to use project archs
Add a new option to instruct cargo-mobile2 to use architectures configured in the project for building
* update cargo-mobile2, add change file
* fix change file [skip ci]
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* skip pack in publish, use check fetch
* remove script
* remove apt, exists in main pipeline
* CLI doesn't need separate check
* no assets for tauri-cli