diff --git a/.changes/fix-pnpm-check.md b/.changes/fix-pnpm-check.md new file mode 100644 index 000000000..ae4ea9609 --- /dev/null +++ b/.changes/fix-pnpm-check.md @@ -0,0 +1,6 @@ +--- +"tauri-cli": patch:bug +"@tauri-apps/cli": patch:bug +--- + +Fixes `pnpm` detection when initializing and running a mobile project. diff --git a/tooling/cli/src/mobile/init.rs b/tooling/cli/src/mobile/init.rs index 1336cf5c0..c1db20e86 100644 --- a/tooling/cli/src/mobile/init.rs +++ b/tooling/cli/src/mobile/init.rs @@ -103,7 +103,9 @@ pub fn exec( if let Some(bin_stem) = bin_path.file_stem() { let r = regex::Regex::new("(nodejs|node)\\-?([1-9]*)*$").unwrap(); if r.is_match(&bin_stem.to_string_lossy()) { - if let Some(npm_execpath) = var_os("npm_execpath") { + if var_os("PNPM_PACKAGE_NAME").is_some() { + return ("pnpm".into(), build_args); + } else if let Some(npm_execpath) = var_os("npm_execpath") { let manager_stem = PathBuf::from(&npm_execpath) .file_stem() .unwrap() diff --git a/tooling/cli/src/mobile/ios/xcode_script.rs b/tooling/cli/src/mobile/ios/xcode_script.rs index c0a0031bf..881b44b89 100644 --- a/tooling/cli/src/mobile/ios/xcode_script.rs +++ b/tooling/cli/src/mobile/ios/xcode_script.rs @@ -61,7 +61,7 @@ pub fn command(options: Options) -> Result<()> { } // `xcode-script` is ran from the `gen/apple` folder when not using NPM. - if var_os("npm_lifecycle_event").is_none() { + if var_os("npm_lifecycle_event").is_none() && var_os("PNPM_PACKAGE_NAME").is_none() { set_current_dir(current_dir()?.parent().unwrap().parent().unwrap()).unwrap(); } diff --git a/tooling/cli/src/mobile/mod.rs b/tooling/cli/src/mobile/mod.rs index e861a160b..5d3891c16 100644 --- a/tooling/cli/src/mobile/mod.rs +++ b/tooling/cli/src/mobile/mod.rs @@ -261,12 +261,15 @@ fn read_options(identifier: &str) -> CliOptions { let runtime = tokio::runtime::Runtime::new().unwrap(); let options = runtime .block_on(async move { + let addr_path = temp_dir().join(format!("{identifier}-server-addr")); let (tx, rx) = WsTransportClientBuilder::default() .build( format!( "ws://{}", - read_to_string(temp_dir().join(format!("{identifier}-server-addr"))) - .expect("missing addr file") + read_to_string(&addr_path).unwrap_or_else(|e| panic!( + "failed to read missing addr file {}: {e}", + addr_path.display() + )) ) .parse() .unwrap(), diff --git a/tooling/cli/templates/mobile/ios/project.yml b/tooling/cli/templates/mobile/ios/project.yml index ac827d813..1a491bb3b 100644 --- a/tooling/cli/templates/mobile/ios/project.yml +++ b/tooling/cli/templates/mobile/ios/project.yml @@ -127,8 +127,9 @@ targets: name: Build Rust Code basedOnDependencyAnalysis: false outputFiles: - - $(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/lib{{app.lib-name}}.a - - $(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/lib{{app.lib-name}}.a + - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/lib{{app.lib-name}}.a + - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/lib{{app.lib-name}}.a + - $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/lib{{app.lib-name}}.a {{~#if ios-post-compile-scripts}} postCompileScripts: {{~#each ios-post-compile-scripts}}{{#if this.path}}