Skip to content

Commit fb1933f

Browse files
authored
fix(cli): android dev --open failing due to adb not finding device (#10467)
1 parent 699319d commit fb1933f

File tree

7 files changed

+34
-20
lines changed

7 files changed

+34
-20
lines changed
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+
Fixes running `android dev --open`.

tooling/cli/src/mobile/android/android_studio_script.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::{
1111
use clap::{ArgAction, Parser};
1212

1313
use cargo_mobile2::{
14-
android::target::Target,
14+
android::{adb, target::Target},
1515
opts::Profile,
1616
target::{call_for_targets_with_fallback, TargetTrait},
1717
};
@@ -58,6 +58,26 @@ pub fn command(options: Options) -> Result<()> {
5858

5959
let env = env()?;
6060

61+
if cli_options.dev {
62+
let dev_url = tauri_config
63+
.lock()
64+
.unwrap()
65+
.as_ref()
66+
.unwrap()
67+
.build
68+
.dev_url
69+
.clone();
70+
if let Some(port) = dev_url.and_then(|url| url.port_or_known_default()) {
71+
let forward = format!("tcp:{port}");
72+
// ignore errors in case we do not have a device available
73+
let _ = adb::adb(&env, ["reverse", &forward, &forward])
74+
.stdin_file(os_pipe::dup_stdin().unwrap())
75+
.stdout_file(os_pipe::dup_stdout().unwrap())
76+
.stderr_capture()
77+
.run();
78+
}
79+
}
80+
6181
call_for_targets_with_fallback(
6282
options.targets.unwrap_or_default().iter(),
6383
&detect_target_ok,

tooling/cli/src/mobile/android/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ fn run_build(
189189
let _lock = flock::open_rw(out_dir.join("lock").with_extension("android"), "Android")?;
190190

191191
let cli_options = CliOptions {
192+
dev: false,
192193
features: build_options.features.clone(),
193194
args: build_options.args.clone(),
194195
noise_level,

tooling/cli/src/mobile/android/dev.rs

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ use clap::{ArgAction, Parser};
2222
use anyhow::Context;
2323
use cargo_mobile2::{
2424
android::{
25-
adb,
2625
config::{Config as AndroidConfig, Metadata as AndroidMetadata},
2726
device::Device,
2827
env::Env,
@@ -208,23 +207,6 @@ fn run_dev(
208207
},
209208
)?;
210209

211-
let dev_url = tauri_config
212-
.lock()
213-
.unwrap()
214-
.as_ref()
215-
.unwrap()
216-
.build
217-
.dev_url
218-
.clone();
219-
if let Some(port) = dev_url.and_then(|url| url.port_or_known_default()) {
220-
let forward = format!("tcp:{port}");
221-
adb::adb(&env, ["reverse", &forward, &forward])
222-
.stdin_file(os_pipe::dup_stdin().unwrap())
223-
.stdout_file(os_pipe::dup_stdout().unwrap())
224-
.stderr_capture()
225-
.run()?;
226-
}
227-
228210
let open = options.open;
229211
let exit_on_panic = options.exit_on_panic;
230212
let no_watch = options.no_watch;
@@ -238,6 +220,7 @@ fn run_dev(
238220
},
239221
|options| {
240222
let cli_options = CliOptions {
223+
dev: true,
241224
features: options.features.clone(),
242225
args: options.args.clone(),
243226
noise_level,

tooling/cli/src/mobile/ios/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ fn run_build(
270270
let _lock = flock::open_rw(out_dir.join("lock").with_extension("ios"), "iOS")?;
271271

272272
let cli_options = CliOptions {
273+
dev: false,
273274
features: build_options.features.clone(),
274275
args: build_options.args.clone(),
275276
noise_level,

tooling/cli/src/mobile/ios/dev.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ fn use_network_address_for_dev_url(
310310
.host
311311
.unwrap_or_default()
312312
.unwrap_or_else(|| *local_ip_address(options.force_ip_prompt));
313-
dev_options.host.replace(ip.clone());
313+
dev_options.host.replace(ip);
314314
Some(ip)
315315
} else {
316316
None
@@ -375,6 +375,7 @@ fn run_dev(
375375
},
376376
|options| {
377377
let cli_options = CliOptions {
378+
dev: true,
378379
features: options.features.clone(),
379380
args: options.args.clone(),
380381
noise_level,

tooling/cli/src/mobile/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ impl Target {
131131

132132
#[derive(Debug, Clone, Serialize, Deserialize)]
133133
pub struct CliOptions {
134+
pub dev: bool,
134135
pub features: Option<Vec<String>>,
135136
pub args: Vec<String>,
136137
pub noise_level: NoiseLevel,
@@ -140,6 +141,7 @@ pub struct CliOptions {
140141
impl Default for CliOptions {
141142
fn default() -> Self {
142143
Self {
144+
dev: false,
143145
features: None,
144146
args: vec!["--lib".into()],
145147
noise_level: Default::default(),

0 commit comments

Comments
 (0)