Skip to content

Commit 0d1cb83

Browse files
authored
fix(cli): missing options on mobile dev/build commands (#14932)
* fix(cli): missing options on mobile dev/build commands * avoid duplicated flags * clippy
1 parent 35c35f2 commit 0d1cb83

7 files changed

Lines changed: 54 additions & 26 deletions

File tree

.changes/fix-missing-options.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"tauri-cli": patch:bug
3+
"@tauri-apps/cli": patch:bug
4+
---
5+
6+
Fix missing Cargo args when running mobile dev and build commands.

crates/tauri-cli/src/interface/rust.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ fn dev_options(
425425
}
426426
*args = dev_args;
427427

428-
if mobile {
428+
if mobile && !args.contains(&"--lib".into()) {
429429
args.push("--lib".into());
430430
}
431431

@@ -483,7 +483,9 @@ impl Rust {
483483
pub fn build_options(&self, args: &mut Vec<String>, features: &mut Vec<String>, mobile: bool) {
484484
features.push("tauri/custom-protocol".into());
485485
if mobile {
486-
args.push("--lib".into());
486+
if !args.contains(&"--lib".into()) {
487+
args.push("--lib".into());
488+
}
487489
} else {
488490
args.push("--bins".into());
489491
}

crates/tauri-cli/src/mobile/android/build.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,22 @@ pub fn run(
154154
build_options.target = Some(first_target.triple.into());
155155

156156
let interface = AppInterface::new(tauri_config, build_options.target.clone(), dirs.tauri)?;
157-
interface.build_options(&mut Vec::new(), &mut build_options.features, true);
157+
interface.build_options(&mut build_options.args, &mut build_options.features, true);
158158

159159
let app = get_app(MobileTarget::Android, tauri_config, &interface, dirs.tauri);
160160
let (config, metadata) = get_config(
161161
&app,
162162
tauri_config,
163163
&build_options.features,
164-
&Default::default(),
164+
&CliOptions {
165+
dev: false,
166+
features: build_options.features.clone(),
167+
args: build_options.args.clone(),
168+
noise_level,
169+
vars: Default::default(),
170+
config: build_options.config.clone(),
171+
target_device: None,
172+
},
165173
);
166174

167175
let profile = if options.debug {

crates/tauri-cli/src/mobile/android/dev.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result<
182182
.map(|d| d.target().triple.to_string())
183183
.unwrap_or_else(|| Target::all().values().next().unwrap().triple.into());
184184
dev_options.target = Some(target_triple);
185+
dev_options.args.push("--lib".into());
185186

186187
let interface = AppInterface::new(&tauri_config, dev_options.target.clone(), dirs.tauri)?;
187188

@@ -190,7 +191,15 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result<
190191
&app,
191192
&tauri_config,
192193
dev_options.features.as_ref(),
193-
&Default::default(),
194+
&CliOptions {
195+
dev: true,
196+
features: dev_options.features.clone(),
197+
args: dev_options.args.clone(),
198+
noise_level,
199+
vars: Default::default(),
200+
config: dev_options.config.clone(),
201+
target_device: None,
202+
},
194203
);
195204

196205
set_current_dir(dirs.tauri).context("failed to set current directory to Tauri directory")?;

crates/tauri-cli/src/mobile/ios/build.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,22 @@ pub fn run(options: Options, noise_level: NoiseLevel, dirs: &Dirs) -> Result<Bui
195195
dirs.tauri,
196196
)?;
197197
let interface = AppInterface::new(&tauri_config, build_options.target.clone(), dirs.tauri)?;
198-
interface.build_options(&mut Vec::new(), &mut build_options.features, true);
198+
interface.build_options(&mut build_options.args, &mut build_options.features, true);
199199

200200
let app = get_app(MobileTarget::Ios, &tauri_config, &interface, dirs.tauri);
201201
let (mut config, _) = get_config(
202202
&app,
203203
&tauri_config,
204204
&build_options.features,
205-
&Default::default(),
205+
&CliOptions {
206+
dev: false,
207+
features: build_options.features.clone(),
208+
args: build_options.args.clone(),
209+
noise_level,
210+
vars: Default::default(),
211+
config: build_options.config.clone(),
212+
target_device: None,
213+
},
206214
dirs.tauri,
207215
)?;
208216

@@ -328,7 +336,7 @@ pub fn run(options: Options, noise_level: NoiseLevel, dirs: &Dirs) -> Result<Bui
328336
&mut config,
329337
&mut env,
330338
noise_level,
331-
&dirs,
339+
dirs,
332340
)?;
333341

334342
if open {

crates/tauri-cli/src/mobile/ios/dev.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result<
182182
.map(|d| d.target().triple.to_string())
183183
.unwrap_or_else(|| "aarch64-apple-ios".into());
184184
dev_options.target = Some(target_triple.clone());
185+
dev_options.args.push("--lib".into());
185186

186187
let tauri_config = get_tauri_config(
187188
tauri_utils::platform::Target::Ios,
@@ -195,7 +196,15 @@ fn run_command(options: Options, noise_level: NoiseLevel, dirs: Dirs) -> Result<
195196
&app,
196197
&tauri_config,
197198
&dev_options.features,
198-
&Default::default(),
199+
&CliOptions {
200+
dev: true,
201+
features: dev_options.features.clone(),
202+
args: dev_options.args.clone(),
203+
noise_level,
204+
vars: Default::default(),
205+
config: dev_options.config.clone(),
206+
target_device: None,
207+
},
199208
dirs.tauri,
200209
)?;
201210

@@ -297,7 +306,7 @@ fn run_dev(
297306
)?;
298307
}
299308

300-
crate::dev::setup(&interface, &mut dev_options, &mut tauri_config, &dirs)?;
309+
crate::dev::setup(&interface, &mut dev_options, &mut tauri_config, dirs)?;
301310

302311
let app_settings = interface.app_settings();
303312
let out_dir = app_settings.out_dir(
@@ -360,7 +369,7 @@ fn run_dev(
360369
open_xcode()
361370
}
362371
},
363-
&dirs,
372+
dirs,
364373
)
365374
}
366375

crates/tauri-cli/src/mobile/mod.rs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ impl Default for DevHost {
166166
}
167167
}
168168

169-
#[derive(Debug, Clone, Serialize, Deserialize)]
169+
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
170170
pub struct CliOptions {
171171
pub dev: bool,
172172
pub features: Vec<String>,
@@ -177,20 +177,6 @@ pub struct CliOptions {
177177
pub target_device: Option<TargetDevice>,
178178
}
179179

180-
impl Default for CliOptions {
181-
fn default() -> Self {
182-
Self {
183-
dev: false,
184-
features: Vec::new(),
185-
args: vec!["--lib".into()],
186-
noise_level: Default::default(),
187-
vars: Default::default(),
188-
config: Vec::new(),
189-
target_device: None,
190-
}
191-
}
192-
}
193-
194180
fn local_ip_address(force: bool) -> &'static IpAddr {
195181
static LOCAL_IP: OnceLock<IpAddr> = OnceLock::new();
196182
LOCAL_IP.get_or_init(|| {

0 commit comments

Comments
 (0)