electron-builder: 21.2.0electron: 5.0.2node: 12.0.0Building for MacOS
We recently upgraded our technical stack to allow for the notarization of our app. We are using electron-notarize and for the most part, everything works as expected. Unfortunately, when building our application for distribution we are running into a problem with MacOS where the dmg creation fails about 90% of the time (you can check the supplied logs in the issue for more information). We thought that the problem might be something with our setup and we spent a significant amount of time digging into that but to no avail.
After checking things over we decided to look into electron-builder and after setting the debug flags DEBUG=electron-builder DEBUG_DMG=true we see that there is a problem when running the hdiutil command in electron-builder. I did some research and the only references to this error are back from 2016 here: https://github.com/electron-userland/electron-builder/issues/854. Unfortunately, we have no antivirus running and none of the comments in that thread have helped.
The problem we are facing really slows us down and we often have to build 10 or more times before we get a successful build. Has anyone else faced this issue? Is there something silly I am overlooking? Any help would be really appreciated. If more logs are useful then please let me know and I can post a more detailed logging output. Thanks for the help in advance.
[20:05:03] 2020-01-21 20:04:58.562 diskimages-helper[94927:334169] *useEffectiveIDs**** euid/egid changed to 501,20 (uid/gid is 501,20)
[20:05:03] DIHLDiskImageCreate() returned 49168
[20:05:03] hdiutil: create: returning 49168
[20:05:03] hdiutil: create failed - Resource busy
[20:05:03] • exited command=hdiutil code=1 pid=94924
[20:05:03] • async task error error=hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
[20:05:26] • building embedded block map file=dist/App.zip
[20:05:26] • spawning command=/Users/builder/buildslave/app/build/node_modules/app-builder-bin/mac/app-builder blockmap --input /Users/builder/buildslave/app/build/dist/App.zip --compression deflate
[20:05:26] • exited command=app-builder code=0 pid=95022 out={"size":71064404,"sha512":"T9qUijiL5hlbvHQDF8dY8os8yKj/uTGeVmq060HtN+/MJy7ryuAxiOjq+aTXHb17h88vh7bl+yZ8LpQFFcyLDQ=="
I experienced the same thing but it appeared to happen on [email protected] with[email protected] as well.
After having researched I found https://github.com/electron-userland/electron-builder/issues/2115#issuecomment-336236724 which then let me re-check the versions.
tl:dr:
First make sure there is no global installation left by doing:
npm remove electron -g
npm remove electron-builder -g
After that check if there is still a global one as a leftover (like in my case that was the issue):
which electron
which electron-builder
After that and after upgrading the versions it should be alright.
Have to roll back here. It still happens from time to time.
Ahh okay, it's too bad that updating the package didn't fix it but thanks for the reply.
Hi,
I'm facing the same issue with a lower version of electron, electron-builder and node.
The version I use :
electron-builder: 20.44.4electron : 3.1.11node : 10.9.0macOSX : 10.14.6 MojaveMy application used to build fine 3 months ago but since two weeks the dmg creation fails almost every time. I suspect an issue with my current macOSX version combined with my fusion hard drive but I have no more idea.
Have you found a solution ?
Any help would be really appreciated.
Thanks in advance.
Unfortunately, we are still dealing with the same problem... If we find anything, I will update this issue.
Same problem here. Versions:
"electron-builder": "^22.3.2""electron": "^7.1.2",node: v12.8.1macOSX: 10.15.3Has anyone solved this? Having the same issue here
Seems to be working fine on my machine but fails 95% of the time on CI
```hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE stackTrace=
Error: hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
at ChildProcess.
at Object.onceWrapper (events.js:428:26)
at ChildProcess.emit (events.js:321:20)
at maybeClose (internal/child_process.js:1026:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
OR
Error: Exit code: 16. Command failed: hdiutil detach -force /dev/disk2
hdiutil: couldn't eject "disk2" - Resource busy
hdiutil: couldn't eject "disk2" - Resource busy
at
at ChildProcess.exithandler (child_process.js:310:5)
at ChildProcess.emit (events.js:321:20)
at maybeClose (internal/child_process.js:1026:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
Worked around by using macOS 10.13 for now
Hi,
Facing the same issue with older versions of electron and electron-builder.
"electron-builder": "^21.0.2"
"electron": "^6.0.11",
node: v13.8.0
macOSX: 10.15.3
Not sure if it's related, but as I build .dmg quite regularly with electron-builder, I think the first time I had this issue was right after I started to use the iCloud storage .. 👽
Same issue here on OSX 10.15.3. This machine is running Sophos antivirus, which i have no way of disabling
Hi,
I'm facing the same issue:
electron-builder: 21.2.0
electron: 5.0.13
node: 10.16.3
macOSX: 10.15.4
I have no AV active on the system. It stopped working the day I upgraded MacOS X to Catalina.
Any idea @develar ?
Thanks for your time.
The logs:
spawning command=/Users/auser/workspace/dev/projects/aproject/node_modules/builder-util/node_modules/app-builder-bin/mac/app-builder blockmap --input /Users/auser/workspace/dev/projects/aproject/electron-builds/App-2.1.2-mac.zip --compression deflate
• exited command=hdiutil code=1 pid=59034
• async task error error=hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
• exited command=app-builder code=0 pid=59060 out={"size":429014698,"sha512":"WoZmDVcgfMPCs1q2UvV7Vy9t4TYu6ZoBE6ClrDoexH9OSa+0UqPzJVAzF+cjQWGK3bbmUnE0dxlEz/gsrsp04Q==","blockMapSize":411782}
• getPublishConfigsForUpdateInfo: no publishConfigs, detect using repository info
• calling getInfo reason=owner or project is not specified explicitly provider=github owner=undefined project=undefined
• executing file=security args=delete-keychain /var/folders/gc/7vgy7x5970g1mm8jkv5v48zc0000gn/T/981e2e2758ea5bd31cb9672c97c157a6dd388ac7ae2f9737dd805e19cf091e7a.keychain
• executed file=security
⨯ hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE stackTrace=
Error: hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
at ChildProcess.childProcess.once.code (/Users/auser/workspace/dev/projects/aproject/node_modules/builder-util/src/util.ts:243:14)
at Object.onceWrapper (events.js:286:20)
at ChildProcess.emit (events.js:198:13)
at maybeClose (internal/child_process.js:982:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
It still happens a lot on my side, but from time to time it works again. I don't have any clue why. 😞
I have tried to update my package versions (they're not globally installed) but I didn't notice any changes. Also, I'm running with Sophos too, maybe that's a hint, referring @michaelkozakovsc comment.
Same thing here. I've been seeing it randomly for the past month or two but usually waiting a little bit and trying again once or twice succeeds.
I've got a local Minio bucket as well as real S3 bucket and I've seen both error the same way, so it does not seem like a network timeout issue. Never had electron or electron-builder -g installed. Tried rm -rf node_modules && yarn. Today I've tried eight or nine times with no luck.
electron-builder: 22.4.1
electron: 7.1.12
node: 12.8.1
osx: 10.15.4 (also saw this on 10.15.3)
S3 bucket
When I got the error this time, I hit cmd-c to kill it and got some additional logging, not sure if it is helpful though.
• uploading file=MyApp-1.12.11-alpha.2-mac.zip provider=S3
⨯ hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE stackTrace=
Error: hdiutil exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
at ChildProcess.<anonymous> (/Users/usernamehere/Code/myapp/node_modules/builder-util/src/util.ts:239:14)
at Object.onceWrapper (events.js:313:26)
at ChildProcess.emit (events.js:223:5)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
^C • canceling signal=interrupt
⨯ MultipartUpload: upload multipart failed
upload id: <somelongstring>
caused by: RequestCanceled: request context canceled
caused by: context canceled
github.com/develar/app-builder/pkg/publisher.upload
/Volumes/data/Documents/app-builder/pkg/publisher/s3.go:169
github.com/develar/app-builder/pkg/publisher.ConfigurePublishToS3Command.func1
/Volumes/data/Documents/app-builder/pkg/publisher/s3.go:57
github.com/alecthomas/kingpin.(*actionMixin).applyActions
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:222
main.main
/Volumes/data/Documents/app-builder/main.go:90
runtime.main
/usr/local/Cellar/go/1.14/libexec/src/runtime/proc.go:203
runtime.goexit
/usr/local/Cellar/go/1.14/libexec/src/runtime/asm_amd64.s:1373
As I finished writing this my mac said there was an update. I installed that and rebooted (MacOs version did not change). Ran yarn release and it worked on the first try. Maybe I just needed to reboot, don't know.
Also, I'm running with Sophos too, maybe that's a hint, referring @michaelkozakovsc comment.
I recently removed Sophos AV and it was working again perfectly. Sophos was not active but still installed on the system. So I think Sophos was the issue for me.
I fixed the problem by moving all the build to Azure Pipelines.
I uninstalled Sophos today and it works again 🎉
+1 I'm also having this issue
I'm having this issue intermittently on a factory reset Mojave 10.4.6 Mac Mini without any anti-virus installed. It's a build machine as clean as a whistle with no globals installed, no AV, not even an extra browser installed, nothing. If there's anything logging or environment wise I can provide to help fix this, I'd be happy to provide :)
I wrestled with this exact issue for several hours tonight until I came across this post on superuser.com, which led me to try disabling Spotlight indexing: https://electrictoolbox.com/disable-spotlight-indexing-mac-osx/. After running sudo mdutil -a -i off the build started working immediately. If you're still struggling with this issue, then I'd try doing the same.
As for why Sophos could have been material to other folks' problems, I figure that's because Sophos must scan your disk in the same problematic way that Spotlight does. That's just speculation, though.
EDIT: changed the mdutil command to disable indexing to all stores on all volumes.
+1 also experiencing this issue - I do have Sophos, but unable to disable/uninstall it
electron-builder: 22.8.0
electron: 7.1.9
Stopped working for me as well, and yes, also Sophos enforced on my machine...
I guess it's impossible to get the Mac build working in a docker container?
Hey @manderson-te!
We tried this solution but it didn't work for us, unfortunately. Thanks for the suggestion though.
I also see this, but only on GitHub Actions and never locally. Very intermittent; it fails about 40% of the time. Can give full logs if desired.
I believe the underlying issue here is fixed by this pull request: https://github.com/LinusU/node-appdmg/pull/190
I am seeing this issue consistently when I try to export a dmg. I do have Sophos and cannot be disabled unfortunately. Is there any other work around?
Most helpful comment
I wrestled with this exact issue for several hours tonight until I came across this post on superuser.com, which led me to try disabling Spotlight indexing: https://electrictoolbox.com/disable-spotlight-indexing-mac-osx/. After running
sudo mdutil -a -i offthe build started working immediately. If you're still struggling with this issue, then I'd try doing the same.As for why Sophos could have been material to other folks' problems, I figure that's because Sophos must scan your disk in the same problematic way that Spotlight does. That's just speculation, though.
EDIT: changed the
mdutilcommand to disable indexing to all stores on all volumes.