From 8e1654961a7cfbd72600149b37bdd20749873f99 Mon Sep 17 00:00:00 2001 From: Vanalite Date: Thu, 18 Sep 2025 18:55:33 +0700 Subject: [PATCH 1/2] chore: Configure iOS to use the same build mechanic to remove unnecessary plugin --- package.json | 9 +++++++-- src-tauri/Cargo.toml | 7 +++++-- src-tauri/src/lib.rs | 16 +++++++++++++++- src-tauri/tauri.android.conf.json | 4 ++++ src-tauri/tauri.ios.conf.json | 8 +++++++- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d0cd3d4cb..2c5234da7 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,14 @@ "serve:web-app": "yarn workspace @janhq/web-app serve:web", "build:serve:web-app": "yarn build:web-app && yarn serve:web-app", "dev:tauri": "yarn build:icon && yarn copy:assets:tauri && cross-env IS_CLEAN=true tauri dev", - "dev:ios": "yarn tauri ios dev", - "dev:android": "yarn tauri android dev", + "dev:ios": "yarn copy:assets:mobile && yarn tauri ios dev", + "dev:android": "yarn copy:assets:mobile && yarn tauri android dev", + "build:android": "yarn build && yarn copy:assets:mobile && yarn tauri android build --no-default-features --features mobile", + "build:ios": "yarn build && yarn copy:assets:mobile && yarn tauri ios build --no-default-features --features mobile", + "build:ios:device": "yarn build && yarn copy:assets:mobile && yarn tauri ios build --no-default-features --features mobile --export-method debugging", + "dev:ios:device": "yarn copy:assets:mobile && yarn tauri ios dev", "copy:assets:tauri": "cpx \"pre-install/*.tgz\" \"src-tauri/resources/pre-install/\" && cpx \"LICENSE\" \"src-tauri/resources/\"", + "copy:assets:mobile": "cpx \"pre-install/*.tgz\" \"src-tauri/resources/pre-install/\" && cpx \"LICENSE\" \"src-tauri/resources/\"", "download:lib": "node ./scripts/download-lib.mjs", "download:bin": "node ./scripts/download-bin.mjs", "build:tauri:win32": "yarn download:bin && yarn tauri build", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index be2320c52..aa7425f81 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -22,8 +22,11 @@ default = [ "tauri/macos-private-api", "tauri/tray-icon", "tauri/test", - "tauri/custom-protocol" + "tauri/custom-protocol", + "hardware", ] +hardware = ["dep:tauri-plugin-hardware"] +mobile = [] test-tauri = [ "tauri/wry", "tauri/x11", @@ -61,7 +64,7 @@ serde_yaml = "0.9.34" tar = "0.4" tauri-plugin-deep-link = { version = "2.3.4" } tauri-plugin-dialog = "2.2.1" -tauri-plugin-hardware = { path = "./plugins/tauri-plugin-hardware" } +tauri-plugin-hardware = { path = "./plugins/tauri-plugin-hardware", optional = true } tauri-plugin-http = { version = "2", features = ["unsafe-headers"] } tauri-plugin-llamacpp = { path = "./plugins/tauri-plugin-llamacpp" } tauri-plugin-log = "2.0.0-rc" diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 45a78c8f9..5b351b593 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -40,6 +40,7 @@ pub fn run() { })); } + #[cfg(feature = "hardware")] let app = builder .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_deep_link::init()) @@ -49,7 +50,20 @@ pub fn run() { .plugin(tauri_plugin_store::Builder::new().build()) .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_llamacpp::init()) - .plugin(tauri_plugin_hardware::init()) + .plugin(tauri_plugin_hardware::init()); + + #[cfg(not(feature = "hardware"))] + let app = builder + .plugin(tauri_plugin_os::init()) + .plugin(tauri_plugin_deep_link::init()) + .plugin(tauri_plugin_dialog::init()) + .plugin(tauri_plugin_opener::init()) + .plugin(tauri_plugin_http::init()) + .plugin(tauri_plugin_store::Builder::new().build()) + .plugin(tauri_plugin_shell::init()) + .plugin(tauri_plugin_llamacpp::init()); + + let app = app .invoke_handler(tauri::generate_handler![ // FS commands - Deperecate soon core::filesystem::commands::join_path, diff --git a/src-tauri/tauri.android.conf.json b/src-tauri/tauri.android.conf.json index be9c703fe..a77961841 100644 --- a/src-tauri/tauri.android.conf.json +++ b/src-tauri/tauri.android.conf.json @@ -7,5 +7,9 @@ "security": { "capabilities": ["default"] } + }, + "bundle": { + "resources": ["resources/LICENSE", "resources/pre-install"], + "externalBin": [] } } \ No newline at end of file diff --git a/src-tauri/tauri.ios.conf.json b/src-tauri/tauri.ios.conf.json index c5346846d..5b9371385 100644 --- a/src-tauri/tauri.ios.conf.json +++ b/src-tauri/tauri.ios.conf.json @@ -1,4 +1,8 @@ { + "build": { + "devUrl": null, + "frontendDist": "../web-app/dist" + }, "app": { "security": { "capabilities": ["default"] @@ -7,6 +11,8 @@ "bundle": { "iOS": { "developmentTeam": "" - } + }, + "resources": ["resources/LICENSE", "resources/pre-install"], + "externalBin": [] } } \ No newline at end of file From 6d131f8cbbc05286e978253424562f99b241e7fc Mon Sep 17 00:00:00 2001 From: Vanalite Date: Mon, 22 Sep 2025 11:35:19 +0700 Subject: [PATCH 2/2] fix: Remove redundant yarn command for ios dev build --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 2c5234da7..3b8756eff 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "build:android": "yarn build && yarn copy:assets:mobile && yarn tauri android build --no-default-features --features mobile", "build:ios": "yarn build && yarn copy:assets:mobile && yarn tauri ios build --no-default-features --features mobile", "build:ios:device": "yarn build && yarn copy:assets:mobile && yarn tauri ios build --no-default-features --features mobile --export-method debugging", - "dev:ios:device": "yarn copy:assets:mobile && yarn tauri ios dev", "copy:assets:tauri": "cpx \"pre-install/*.tgz\" \"src-tauri/resources/pre-install/\" && cpx \"LICENSE\" \"src-tauri/resources/\"", "copy:assets:mobile": "cpx \"pre-install/*.tgz\" \"src-tauri/resources/pre-install/\" && cpx \"LICENSE\" \"src-tauri/resources/\"", "download:lib": "node ./scripts/download-lib.mjs",