tauri-apps / tauri

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
https://tauri.app
Apache License 2.0
83.9k stars 2.52k forks source link

[bug] Unable to Build Tauri App on MacOS at all #10948

Closed Type-32 closed 1 month ago

Type-32 commented 1 month ago

2024/09/12 Status Update: I got it working using npm run tauri build -- --debug command.

Describe the bug

I'm using Tauri v2-rc and on my Macbook Pro M1 2021 (OS version macOS Sequoia 15.1 Dev Beta) with an NPM version of 10.8.2 and Node v22. I created my project using the cargo quickstart commands. The project is Vue.js + TypeScript + Rust + Tauri.

I'm following the v2.tauri.app documentation.

After creating the project, I ran the app using npm run tauri dev, which works fine. Then I tried the following commands:

All of which didn't build the application successfully. My repo is here: https://github.com/Type-32/dnd-utility-app The logs for all command results above are as the following:

Log 1

(base) ~/Documents/RustRover Projects/dnd-utility-app
npm run tauri build --bundles app

> dnd-utility-app@0.1.0 tauri
> tauri build app

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
x Build failed in 287ms
error during build:
EACCES: permission denied, unlink '/Users/administrator/Documents/RustRover Projects/dnd-utility-app/dist/assets/index-CSwEWTC4.css'
    at unlinkSync (node:fs:1871:11)
    at _unlinkSync (node:internal/fs/rimraf:213:14)
    at rimrafSync (node:internal/fs/rimraf:194:7)
    at node:internal/fs/rimraf:252:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:249:7)
    at rimrafSync (node:internal/fs/rimraf:192:7)
    at Object.rmSync (node:fs:1247:10)
    at emptyDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:17081:19)
    at prepareOutDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:65402:7)
    Error beforeBuildCommand `npm run build` failed with exit code 1

Log 2

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
sudo npm run tauri build --bundles app

> dnd-utility-app@0.1.0 tauri
> tauri build app

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
dist/index.html                  0.48 kB │ gzip:  0.31 kB
dist/assets/index-CSwEWTC4.css   1.76 kB │ gzip:  0.68 kB
dist/assets/index-D8tvxMdj.js   63.03 kB │ gzip: 25.25 kB
✓ built in 327ms
error: unexpected argument 'app' found

Usage: cargo build [OPTIONS]

For more information, try '--help'.
    Error failed to build app: failed to build app

Log 3

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
npm run tauri build

> dnd-utility-app@0.1.0 tauri
> tauri build

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
x Build failed in 284ms
error during build:
EACCES: permission denied, unlink '/Users/administrator/Documents/RustRover Projects/dnd-utility-app/dist/assets/index-CSwEWTC4.css'
    at unlinkSync (node:fs:1871:11)
    at _unlinkSync (node:internal/fs/rimraf:213:14)
    at rimrafSync (node:internal/fs/rimraf:194:7)
    at node:internal/fs/rimraf:252:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:249:7)
    at rimrafSync (node:internal/fs/rimraf:192:7)
    at Object.rmSync (node:fs:1247:10)
    at emptyDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:17081:19)
    at prepareOutDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:65402:7)
    Error beforeBuildCommand `npm run build` failed with exit code 1

Log 4

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
sudo npm run tauri build

> dnd-utility-app@0.1.0 tauri
> tauri build

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
dist/index.html                  0.48 kB │ gzip:  0.31 kB
dist/assets/index-CSwEWTC4.css   1.76 kB │ gzip:  0.68 kB
dist/assets/index-D8tvxMdj.js   63.03 kB │ gzip: 25.25 kB
✓ built in 329ms
   Compiling proc-macro2 v1.0.86
   Compiling libc v0.2.158
   Compiling serde v1.0.210
   Compiling syn v1.0.109
   Compiling getrandom v0.1.16
   Compiling proc-macro-hack v0.5.20+deprecated
error: failed to run custom build command for `proc-macro2 v1.0.86`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/proc-macro2-f63d1a9f619f407e/build-script-build` (signal: 9, SIGKILL: kill)
warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `serde v1.0.210`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/serde-45c1d8e8e45cf624/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `libc v0.2.158`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/libc-bacd4364476b8ed6/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `serde v1.0.210`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/serde-f1a4924a62f72a9e/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `syn v1.0.109`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/syn-d49a4e4ef6da49ec/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `libc v0.2.158`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/libc-cad60ee301e7f6eb/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `getrandom v0.1.16`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/getrandom-2ef8440fc05af8e9/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `proc-macro-hack v0.5.20+deprecated`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/proc-macro-hack-31d08b9743722662/build-script-build` (signal: 9, SIGKILL: kill)
    Error failed to build app: failed to build app

Is there anything I missed from the documentation? I have no experience with Rust whatsoever and this is my first time trying Rust through Tauri.

Reproduction

https://github.com/Type-32/dnd-utility-app

  1. Use Cargo Commands to create the project
    npm create tauri-app@latest -- --rc
    cd tauri-app
    npm install
    npm run tauri dev
  2. Try to build the app
    npm run tauri build --bundles app
    sudo npm run tauri build --bundles app
    npm run tauri build
    sudo npm run tauri build

Expected behavior

There should be a .app file in the build or somewhere around in the project files after building the app.

Full tauri info output

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
npm run tauri info

> dnd-utility-app@0.1.0 tauri
> tauri info

[✔] Environment
    - OS: Mac OS 15.1.0 arm64 (X64)
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.81.0 (eeb90cda1 2024-09-04)
    ✔ cargo: 1.81.0 (2dbb1af80 2024-08-20)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (default)
    - node: 22.8.0
    - pnpm: 9.5.0
    - yarn: 1.22.21
    - npm: 10.8.2
    - bun: 1.1.20

[-] Packages
    - tauri 🦀: 2.0.0-rc.10
    - tauri-build 🦀: 2.0.0-rc.9
    - wry 🦀: 0.43.1
    - tao 🦀: 0.30.0
    - tauri-cli 🦀: 2.0.0-rc.11
    - @tauri-apps/api : 2.0.0-rc.4
    - @tauri-apps/cli : 2.0.0-rc.12

[-] Plugins
    - tauri-plugin-shell 🦀: 2.0.0-rc.3
    - @tauri-apps/plugin-shell : 2.0.0-rc.1

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - framework: Vue.js
    - bundler: Vite

Stack trace

Log 1

(base) ~/Documents/RustRover Projects/dnd-utility-app
npm run tauri build --bundles app

> dnd-utility-app@0.1.0 tauri
> tauri build app

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
x Build failed in 287ms
error during build:
EACCES: permission denied, unlink '/Users/administrator/Documents/RustRover Projects/dnd-utility-app/dist/assets/index-CSwEWTC4.css'
    at unlinkSync (node:fs:1871:11)
    at _unlinkSync (node:internal/fs/rimraf:213:14)
    at rimrafSync (node:internal/fs/rimraf:194:7)
    at node:internal/fs/rimraf:252:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:249:7)
    at rimrafSync (node:internal/fs/rimraf:192:7)
    at Object.rmSync (node:fs:1247:10)
    at emptyDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:17081:19)
    at prepareOutDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:65402:7)
    Error beforeBuildCommand `npm run build` failed with exit code 1

Log 2
```log
(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
sudo npm run tauri build --bundles app

> dnd-utility-app@0.1.0 tauri
> tauri build app

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
dist/index.html                  0.48 kB │ gzip:  0.31 kB
dist/assets/index-CSwEWTC4.css   1.76 kB │ gzip:  0.68 kB
dist/assets/index-D8tvxMdj.js   63.03 kB │ gzip: 25.25 kB
✓ built in 327ms
error: unexpected argument 'app' found

Usage: cargo build [OPTIONS]

For more information, try '--help'.
    Error failed to build app: failed to build app

Log 3

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
npm run tauri build

> dnd-utility-app@0.1.0 tauri
> tauri build

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
x Build failed in 284ms
error during build:
EACCES: permission denied, unlink '/Users/administrator/Documents/RustRover Projects/dnd-utility-app/dist/assets/index-CSwEWTC4.css'
    at unlinkSync (node:fs:1871:11)
    at _unlinkSync (node:internal/fs/rimraf:213:14)
    at rimrafSync (node:internal/fs/rimraf:194:7)
    at node:internal/fs/rimraf:252:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:249:7)
    at rimrafSync (node:internal/fs/rimraf:192:7)
    at Object.rmSync (node:fs:1247:10)
    at emptyDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:17081:19)
    at prepareOutDir (file:///Users/administrator/Documents/RustRover%20Projects/dnd-utility-app/node_modules/vite/dist/node/chunks/dep-BaOMuo4I.js:65402:7)
    Error beforeBuildCommand `npm run build` failed with exit code 1

Log 4

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
sudo npm run tauri build

> dnd-utility-app@0.1.0 tauri
> tauri build

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
dist/index.html                  0.48 kB │ gzip:  0.31 kB
dist/assets/index-CSwEWTC4.css   1.76 kB │ gzip:  0.68 kB
dist/assets/index-D8tvxMdj.js   63.03 kB │ gzip: 25.25 kB
✓ built in 329ms
   Compiling proc-macro2 v1.0.86
   Compiling libc v0.2.158
   Compiling serde v1.0.210
   Compiling syn v1.0.109
   Compiling getrandom v0.1.16
   Compiling proc-macro-hack v0.5.20+deprecated
error: failed to run custom build command for `proc-macro2 v1.0.86`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/proc-macro2-f63d1a9f619f407e/build-script-build` (signal: 9, SIGKILL: kill)
warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `serde v1.0.210`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/serde-45c1d8e8e45cf624/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `libc v0.2.158`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/libc-bacd4364476b8ed6/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `serde v1.0.210`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/serde-f1a4924a62f72a9e/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `syn v1.0.109`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/syn-d49a4e4ef6da49ec/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `libc v0.2.158`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/libc-cad60ee301e7f6eb/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `getrandom v0.1.16`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/getrandom-2ef8440fc05af8e9/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `proc-macro-hack v0.5.20+deprecated`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/proc-macro-hack-31d08b9743722662/build-script-build` (signal: 9, SIGKILL: kill)
    Error failed to build app: failed to build app


### Additional context

_No response_
FabianLars commented 1 month ago

Log 1 and 3 is your frontend failing, which makes sense since it doesn't have access to /Users/administrator/ without sudo (btw, why is everything in the admin dir?)

Log 2 is missing another -- for npm to forward the bundles arg to tauri: sudo npm run tauri build -- --bundles app

Log 4 i can only guess. Maybe macOS is preventing inner executables to run to protect the admin folder (sounds unlikely), or cargo spawns them without admin permissions making them fail.

I'm not much of a macos user but in my eyes coding projects have no reason to be in the admin acc/dir so i'm inclined to close this as wontfix and ask you to move the project to a normal user (unless of course there's a valid reason i'm not seeing).

Type-32 commented 1 month ago

My username on mac is "administrator." That's why it seems like everything is under an "administrator" directory, cuz I didn't bother changing the username.

I don't have other user accounts on my mac (nor that I see the necessity in creating one) and by default everything on a mac is under the main user (I think.)

Type-32 commented 1 month ago

Also, I tried the command sudo npm run tauri build -- --bundles app, and it still doesn't seem to work:

(base) ~/Documents/RustRover Projects/dnd-utility-app git:[dev]
sudo npm run tauri build -- --bundles app

> dnd-utility-app@0.1.0 tauri
> tauri build --bundles app

    Running beforeBuildCommand `npm run build`

> dnd-utility-app@0.1.0 build
> vue-tsc --noEmit && vite build

vite v5.4.3 building for production...
✓ 19 modules transformed.
dist/index.html                  0.48 kB │ gzip:  0.31 kB
dist/assets/index-CSwEWTC4.css   1.76 kB │ gzip:  0.68 kB
dist/assets/index-D8tvxMdj.js   63.03 kB │ gzip: 25.25 kB
✓ built in 493ms
   Compiling proc-macro2 v1.0.86
   Compiling libc v0.2.158
   Compiling serde v1.0.210
   Compiling syn v1.0.109
   Compiling getrandom v0.1.16
   Compiling proc-macro-hack v0.5.20+deprecated
error: failed to run custom build command for `serde v1.0.210`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/serde-45c1d8e8e45cf624/build-script-build` (signal: 9, SIGKILL: kill)
warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `getrandom v0.1.16`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/getrandom-2ef8440fc05af8e9/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `serde v1.0.210`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/serde-f1a4924a62f72a9e/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `libc v0.2.158`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/libc-cad60ee301e7f6eb/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `proc-macro2 v1.0.86`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/proc-macro2-f63d1a9f619f407e/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `proc-macro-hack v0.5.20+deprecated`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/proc-macro-hack-31d08b9743722662/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `libc v0.2.158`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/libc-bacd4364476b8ed6/build-script-build` (signal: 9, SIGKILL: kill)
error: failed to run custom build command for `syn v1.0.109`

Caused by:
  process didn't exit successfully: `/Users/administrator/Documents/RustRover Projects/dnd-utility-app/src-tauri/target/release/build/syn-d49a4e4ef6da49ec/build-script-build` (signal: 9, SIGKILL: kill)
    Error failed to build app: failed to build app

I deleted the dist folder before running the command.

Type-32 commented 1 month ago

Gonna close this for now, seems clueless.

Type-32 commented 1 month ago

this is an issue on macOS, apparently: https://github.com/rust-lang/cargo/issues/8913

Type-32 commented 1 month ago

I got it working using the npm run tauri build -- --debug command.