tauri icon indicating copy to clipboard operation
tauri copied to clipboard

When running `tauri build`, `bundle_dmg.sh` errors `fails to bundle project`

Open joepio opened this issue 2 years ago • 40 comments

Edit: the .dmg files are actually created and function correctly. You can find them in ./target/release/bundle/macos

Describe the bug

When running tauri build, bundle_dmg.sh errors fails to bundle project. Looking at the error log below, the issue seems to stem from an Apple script not being authorized: execution error: Not authorised to send Apple events to Finder. (-1743)

I tried restarting, upgrading rustc, and running sudo tauri build - didn't help.

Interestingly, tauri dev does work.

To Reproduce

  1. git clone [email protected]:joepio/atomic-data-rust.git
  2. tauri build

Platform and Versions (required):

Operating System - Mac OS, version 12.0.1 X64

Node.js environment
  Node.js - 16.9.1
  @tauri-apps/cli - 1.0.0-beta.10
  @tauri-apps/api - Not installed

Global packages
  npm - 7.21.1
  yarn - 1.22.17

Rust environment
  rustc - 1.57.0
  cargo - 1.57.0

App directory structure
/target
/server
/cli
/.github
/src-tauri
/lib
/.git
/.vscode

App
  tauri.rs - 1.0.0-beta.8 (no lockfile)
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
  distDir - ../server/static
  devPath - ../server/static/tauri-splashscreen.html
package.json not found

Additional context

Add any other context about the problem here.

Stack Trace

+ WINX=10
+ WINY=60
+ WINW=500
+ WINH=350
+ ICON_SIZE=128
+ TEXT_SIZE=16
+ FORMAT=UDZO
+ ADD_FILE_SOURCES=()
+ ADD_FILE_TARGETS=()
+ IMAGEKEY=
+ HDIUTIL_VERBOSITY=
+ SANDBOX_SAFE=0
+ SKIP_JENKINS=0
+ MAXIMUM_UNMOUNTING_ATTEMPTS=3
+ POSITION_CLAUSE=
+ HIDING_CLAUSE=
+ [[ - = \- ]]
+ case $1 in
+ VOLUME_NAME='Atomic Server'
+ shift
+ shift
+ case $FORMAT in
+ IMAGEKEY='-imagekey zlib-level=9'
+ [[ - = \- ]]
+ case $1 in
+ POSITION_CLAUSE='set position of item "Atomic Server" to {180, 170}
		'
+ shift
+ shift
+ shift
+ shift
+ case $FORMAT in
+ IMAGEKEY='-imagekey zlib-level=9'
+ [[ - = \- ]]
+ case $1 in
+ APPLICATION_LINK=480
+ APPLICATION_CLAUSE='set position of item "Applications" to {480, 170}
		'
+ shift
+ shift
+ shift
+ case $FORMAT in
+ IMAGEKEY='-imagekey zlib-level=9'
+ [[ - = \- ]]
+ case $1 in
+ WINW=660
+ WINH=400
+ shift
+ shift
+ shift
+ case $FORMAT in
+ IMAGEKEY='-imagekey zlib-level=9'
+ [[ - = \- ]]
+ case $1 in
+ HIDING_CLAUSE='set the extension hidden of item "Atomic Server.app" to true
		'
+ shift
+ shift
+ case $FORMAT in
+ IMAGEKEY='-imagekey zlib-level=9'
+ [[ - = \- ]]
+ case $1 in
+ VOLUME_ICON_FILE=/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/icon.icns
+ shift
+ shift
+ case $FORMAT in
+ IMAGEKEY='-imagekey zlib-level=9'
+ [[ A = \- ]]
+ [[ -z Atomic Server.app ]]
+++ dirname /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/bundle_dmg.sh
++ cd /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg
++ pwd
+ SCRIPT_DIR=/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg
+ DMG_PATH='Atomic Server_0.28.2_aarch64.dmg'
++ dirname 'Atomic Server_0.28.2_aarch64.dmg'
+ DMG_DIRNAME=.
++ cd .
++ pwd
+ DMG_DIR=/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos
++ basename 'Atomic Server_0.28.2_aarch64.dmg'
+ DMG_NAME='Atomic Server_0.28.2_aarch64.dmg'
+ DMG_TEMP_NAME='/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
++ cd 'Atomic Server.app'
++ pwd
+ SRC_FOLDER='/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/Atomic Server.app'
+ [[ .dmg != \.\d\m\g ]]
+ [[ -z Atomic Server ]]
+ BREW_INSTALL=0
+ AUX_PATH=/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/support
+ '[' 0 -eq 0 ']'
+ test -d /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/support
+ [[ -f /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/Atomic Server.app/.DS_Store ]]
+ echo 'Creating disk image...'
Creating disk image...
+ [[ -f /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg ]]
+ rm -f '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
+ CUSTOM_SIZE=
+ [[ -n '' ]]
+ '[' 0 -eq 0 ']'
+ hdiutil create -srcfolder '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/Atomic Server.app' -volname 'Atomic Server' -fs HFS+ -fsargs '-c c=64,a=16,e=16' -format UDRW '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
...............................................................................................
created: /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg
++ get_size '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
+++ du -s '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
+++ sed -e 's/	.*//g'
++ bytes_size=48224
+++ blocks_to_megabytes 48224
+++ MB_SIZE=25
+++ echo 25
++ echo 25
+ DISK_IMAGE_SIZE=25
+ [[ 0 -eq 1 ]]
+ [[ -n '' ]]
++ expr 25 + 20
+ DISK_IMAGE_SIZE=45
++ hdiutil resize -limits '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
++ awk 'NR=1{print int($1/2048+1)}'
+ MIN_DISK_IMAGE_SIZE=24
+ '[' 24 -gt 45 ']'
+ hdiutil resize -size 45m '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
+ echo 'Mounting disk image...'
Mounting disk image...
+ MOUNT_DIR='/Volumes/Atomic Server'
+ [[ -d /Volumes/Atomic Server ]]
+ echo 'Mounting disk image...'
Mounting disk image...
+ echo 'Mount directory: /Volumes/Atomic Server'
Mount directory: /Volumes/Atomic Server
++ hdiutil attach -readwrite -noverify -noautoopen '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/macos/rw.Atomic Server_0.28.2_aarch64.dmg'
++ egrep --color=never '^/dev/'
++ sed 1q
++ awk '{print $1}'
+ DEV_NAME=/dev/disk4
+ echo 'Device name:     /dev/disk4'
Device name:     /dev/disk4
+ [[ -n '' ]]
+ [[ -n 480 ]]
+ echo 'making link to Applications dir'
making link to Applications dir
+ test -d '/Volumes/Atomic Server/Applications'
+ ln -s /Applications '/Volumes/Atomic Server/Applications'
+ [[ -n '' ]]
+ [[ -n /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/icon.icns ]]
+ echo 'Copying volume icon file '\''/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/icon.icns'\''...'
Copying volume icon file '/Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/icon.icns'...
+ cp /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/icon.icns '/Volumes/Atomic Server/.VolumeIcon.icns'
+ SetFile -c icnC '/Volumes/Atomic Server/.VolumeIcon.icns'
+ [[ -n '' ]]
++ mktemp -t createdmg.tmp.XXXXXXXXXX
+ APPLESCRIPT_FILE=/var/folders/k1/tynj2xbn5nd12wm5qn3sc4600000gn/T/createdmg.tmp.XXXXXXXXXX.ZJcDOTOg
+ [[ 0 -eq 1 ]]
+ [[ 0 -eq 0 ]]
+ applescript_source
+ '[' 0 -eq 0 ']'
+ cat /Users/joep/dev/github/joepio/atomic-data-rust/target/release/bundle/dmg/support/template.applescript
+ sed -e s/WINX/10/g -e s/WINY/60/g -e s/WINW/660/g -e s/WINH/400/g -e s/BACKGROUND_CLAUSE//g -e s/REPOSITION_HIDDEN_FILES_CLAUSE//g -e s/ICON_SIZE/128/g -e s/TEXT_SIZE/16/g
+ perl -pe 's/POSITION_CLAUSE/set position of item "Atomic Server" to {180, 170}
		/g'
+ perl -pe s/QL_CLAUSE//g
+ perl -pe 's/APPLICATION_CLAUSE/set position of item "Applications" to {480, 170}
		/g'
+ perl -pe 's/HIDING_CLAUSE/set the extension hidden of item "Atomic Server.app" to true
		/'
+ sleep 2
+ echo 'Running AppleScript to make Finder stuff pretty: /usr/bin/osascript "/var/folders/k1/tynj2xbn5nd12wm5qn3sc4600000gn/T/createdmg.tmp.XXXXXXXXXX.ZJcDOTOg" "Atomic Server"'
Running AppleScript to make Finder stuff pretty: /usr/bin/osascript "/var/folders/k1/tynj2xbn5nd12wm5qn3sc4600000gn/T/createdmg.tmp.XXXXXXXXXX.ZJcDOTOg" "Atomic Server"
+ /usr/bin/osascript /var/folders/k1/tynj2xbn5nd12wm5qn3sc4600000gn/T/createdmg.tmp.XXXXXXXXXX.ZJcDOTOg 'Atomic Server'
/var/folders/k1/tynj2xbn5nd12wm5qn3sc4600000gn/T/createdmg.tmp.XXXXXXXXXX.ZJcDOTOg:394:406: execution error: Not authorised to send Apple events to Finder. (-1743)
+ echo 'Failed running AppleScript'
Failed running AppleScript
+ hdiutil detach /dev/disk4
"disk4" ejected.
+ exit 64
Error: failed to bundle project

Caused by:
    Shell Scripting Error:`error running bundle_dmg.sh`

 app:spawn Command "/Users/joep/.config/yarn/global/node_modules/@tauri-apps/cli/bin/tauri-cli" failed with exit code: 1 +1ms

joepio avatar Dec 10 '21 14:12 joepio

Is this happening when running on CI? If so you need an env variable: #2567

lucasfernog avatar Dec 10 '21 14:12 lucasfernog

Thanks for the quick reply. it's happening locally on my m1 macbook

joepio avatar Dec 10 '21 14:12 joepio

@lucasfernog I am facing similar issues with my m1 mac. It just tries to open finder and then fails with same error.

info: running bundle_dmg.sh
Error: failed to bundle project

Caused by:
    Shell Scripting Error:`error running bundle_dmg.sh, try running with --verbose to see command output`
   

Avineak avatar Dec 18 '21 08:12 Avineak

Running into this as well, can confirm that CI=true npm run tauri build works

This should also be fixed when #1731 is done

probablykasper avatar Jan 01 '22 23:01 probablykasper

When setting CI=true, it just stops generating the DMG file. Doesn't seem to be a reasonable fix on mac. 🤔

qqpann avatar Feb 17 '22 03:02 qqpann

It works fine for me, so if you're actually not getting a DMG file then that sounds like a separate issue

probablykasper avatar Feb 17 '22 06:02 probablykasper

You should get a DMG file, though a not so good looking one :( we'll need to refactor the DMG bundle script to fix this.

lucasfernog avatar Feb 17 '22 15:02 lucasfernog

I get this error when trying to run pnpm tauri build. Same issue with finder access.

jamesb93 avatar Mar 27 '22 01:03 jamesb93

FYI, tracing this back into https://github.com/create-dmg/create-dmg/issues/113.

Mojave introduced a new plist value that is required for Apple Script (used in create-dmg) to work with other applications (i.e. Finder).

Maybe we could introduce an OS version check to see if it's Mojave or later and dynamically choose to tack on the CI tag to skip using AppleScript as a workaround until (if) upstream fixes?

lorenzolewis avatar Mar 28 '22 19:03 lorenzolewis

I wish we could stop using applescript and use something like https://github.com/LinusU/node-appdmg but it's a lot of work to translate that one to Rust.

lucasfernog avatar Mar 28 '22 20:03 lucasfernog

when i run CI=true npm run tauri build it still returns the error what am i doing wrong?

LucienGab avatar May 12 '22 16:05 LucienGab

https://github.com/tauri-apps/tauri/issues/3055#issuecomment-1125221226 same here mac m1

gregpalaci avatar Sep 23 '22 22:09 gregpalaci

Same here on Mac M1

jonasmerlin avatar Nov 08 '22 18:11 jonasmerlin

There are various threads talking about similar stuff to this. In one of them it recommended to open Photos.app and press 'Get Started' (I haven't used it before on this mac). That actually worked for some reason. 🤷

hjmallon avatar Jan 16 '23 18:01 hjmallon

Commenting because opening Photos.app worked for me on an M1 MacBook Pro…

Before opening Photos.app…

Running bundle_dmg.sh
       Error failed to bundle project: error running bundle_dmg.sh: error running bundle_dmg.sh: `failed to run […]/tauri-app/src-tauri/target/release/bundle/dmg/bundle_dmg.sh`
error Command failed with exit code 1.

After…

Running bundle_dmg.sh
    Finished 2 bundles at:
        […]/tauri-app/src-tauri/target/release/bundle/macos/tauri-app.app
        […]/tauri-app/src-tauri/target/release/bundle/dmg/tauri-app_0.0.0_aarch64.dmg

jasonhibbs avatar Jan 30 '23 10:01 jasonhibbs

For me, Photos.app did not accomplish anything on M2 Macbook Air, CI=true option does work!

kholbekj avatar Feb 13 '23 18:02 kholbekj

It seems is macOS permission related problem, run “tarui build ” manual for the first time, problem solved.

ruanimal avatar Mar 01 '23 06:03 ruanimal

I had same problem. Simple run Photos not help to me.

It was successed after manual run build script (bundle_dmg.sh from targer/release folder) and it build image. Then I unmount own builded image from finder.

rekby avatar Mar 10 '23 00:03 rekby

I had same problem with Core i7 Mac ( Ventura 13.1 ). Node version is 16.14.2 and had error with both yarn and npm. Error was shown but .App file and .dmg file was built. I tested both and look like it running without any error (yet?)

itsanji avatar Mar 15 '23 08:03 itsanji

I managed to solve this issue by running pnpm tauri build directly in the macOS terminal.

thinksamwp avatar Apr 20 '23 20:04 thinksamwp

The issue for me was that the previously built image was open and bundle_dmg.sh couldn't overwrite it because the old app was running (permission error). Silly problem!

raunakdoesdev avatar Apr 27 '23 04:04 raunakdoesdev

Run pnpm tauri build --verbose to get the underlying cause. In my case:

hdiutil: create failed - Operation not permitted
could not access /Volumes/Sourcegraph/Sourcegraph.app - Operation not permitted

Then forcibly remove the volume:

sudo rm -rf /Volumes/Sourcegraph/Sourcegraph.app

And that won't fully resolve it (not sure why); you need to restart.

slimsag avatar May 19 '23 19:05 slimsag

Same here on Mac M1

But I turned off the updater, it works well

"updater": {
      "active": false,
      "endpoints": ["https://maqi1520.github.io/mdx-editor/install.json"],
      "dialog": true,
      "pubkey": ""
    },

maqi1520 avatar Jun 06 '23 13:06 maqi1520

Tried all the above options on macOS and still receiving the same error! Is this still an issue for anyone else?

dukeeagle avatar Jun 30 '23 22:06 dukeeagle

I fixed it! I think the latest version of macOS is responsible here.

error when building with yarn in verbose mode yarn run tauri build -v:

hdiutil: create failed - Operation not permitted
could not access /Volumes/App/App.app - Operation not permitted

Fixed by enabling "Full Disk Access" in System Settings for Terminal! (and VSCode for its internal terminal)

dukeeagle avatar Jul 01 '23 22:07 dukeeagle

Neat, thanks! Very helpful :))

On Sat, Jul 1, 2023 at 3:02 PM Lucas Igel @.***> wrote:

I fixed it! I think the latest version of macOS is responsible here.

error when building:

hdiutil: create failed - Operation not permitted could not access /Volumes/App/App.app - Operation not permitted

Fixed by enabling "Full Disk Access" in System Settings for Terminal! (and VSCode for its internal terminal)

— Reply to this email directly, view it on GitHub https://github.com/tauri-apps/tauri/issues/3055#issuecomment-1616154645, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACTSCR5I5CPIHU53UJCLOIDXOCM7LANCNFSM5JZHL7PQ . You are receiving this because you commented.Message ID: @.***>

raunakdoesdev avatar Jul 02 '23 02:07 raunakdoesdev

Screenshot 2023-07-06 at 6 28 37 PM

I had to enable full disk access. Might be a better & safer way.

leon-do avatar Jul 06 '23 22:07 leon-do

CI=true pnpm tauri build works for me! 👍

kernelsoe avatar Aug 02 '23 00:08 kernelsoe

i tried it, simple to fix sudo -E npm run tauri build --verbose (you will need to use sudo -E in order to expose environment variables.) make sure disk not full

tungtouch avatar Aug 02 '23 20:08 tungtouch

see your Mac Finder sidebar, you will see something mounted, just delete it, everyting will be ok

jackiealex avatar Sep 25 '23 03:09 jackiealex