浏览代码

feat(cli): add `--release` for `android dev` (#6638)

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
closes #6594
Amr Bashir 2 年之前
父节点
当前提交
63f088e5fc
共有 3 个文件被更改,包括 24 次插入5 次删除
  1. 6 0
      .changes/cli-android-dev-release.md
  2. 17 3
      tooling/cli/src/mobile/android/dev.rs
  3. 1 2
      tooling/cli/src/mobile/mod.rs

+ 6 - 0
.changes/cli-android-dev-release.md

@@ -0,0 +1,6 @@
+---
+'cli.rs': 'patch'
+'cli.js': 'patch'
+---
+
+Add `--release` flag for `tauri android dev` however you will need to sign your Android app, see https://next--tauri.netlify.app/next/guides/distribution/sign-android

+ 17 - 3
tooling/cli/src/mobile/android/dev.rs

@@ -68,6 +68,9 @@ pub struct Options {
   /// Force prompting for an IP to use to connect to the dev server on mobile.
   #[clap(long)]
   pub force_ip_prompt: bool,
+  /// Run the code in release mode
+  #[clap(long = "release")]
+  pub release_mode: bool,
 }
 
 impl From<Options> for DevOptions {
@@ -78,12 +81,12 @@ impl From<Options> for DevOptions {
       features: options.features,
       exit_on_panic: options.exit_on_panic,
       config: options.config,
-      release_mode: false,
       args: Vec::new(),
       no_watch: options.no_watch,
       no_dev_server: options.no_dev_server,
       port: options.port,
       force_ip_prompt: options.force_ip_prompt,
+      release_mode: options.release_mode,
     }
   }
 }
@@ -152,14 +155,25 @@ fn run_dev(
     .values()
     .find(|t| t.triple == target_triple)
     .unwrap_or_else(|| Target::all().values().next().unwrap());
-  target.build(config, metadata, &env, noise_level, true, Profile::Debug)?;
+  target.build(
+    config,
+    metadata,
+    &env,
+    noise_level,
+    true,
+    if options.release_mode {
+      Profile::Release
+    } else {
+      Profile::Debug
+    },
+  )?;
 
   let open = options.open;
   let exit_on_panic = options.exit_on_panic;
   let no_watch = options.no_watch;
   interface.mobile_dev(
     MobileOptions {
-      debug: true,
+      debug: !options.release_mode,
       features: options.features,
       args: Vec::new(),
       config: options.config,

+ 1 - 2
tooling/cli/src/mobile/mod.rs

@@ -316,8 +316,7 @@ fn ensure_init(project_dir: PathBuf, target: Target) -> Result<()> {
       target.command_name(),
     )
   } else {
-    #[allow(irrefutable_let_patterns)]
-    if let Target::Android = target {
+    if target == Target::Android {
       create_dir_all(project_dir.join(".tauri").join("plugins"))?;
     }
     Ok(())