diff --git a/package.json b/package.json index d0cd3d4cb..3b8756eff 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,13 @@ "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", "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