Build Anweisungen (macOS)
Befolge die folgenden Richtlinien für die Erstellung von Electron selbst auf macOS, um eigene Electron-Binärdateien zu erstellen. Wie du deinen Anwendungscode mit den vorgefertigten Electron-Binärdateien bündelst und verteilst, findest du in der Anleitung Anwendungsdistribution.
Vorrausetzungen
- macOS >= 11.6.0
- Xcode. Welche Version genau benötigt wird, hängt davon ab, welchen Zweig du erstellst, aber die neueste Version von Xcode ist im Allgemeinen eine gute Wahl für die Erstellung von
main
. - node.js (extern)
- Python >= 3.7
Arm64-specific prerequisites
- Rosetta 2
- We recommend installing Rosetta if using dependencies that need to cross-compile on x64 and arm64 machines. Rosetta can be installed by using the softwareupdate command line tool.
$ softwareupdate --install-rosetta
Building Electron
Siehe Build Instruktionen: GN.
Problemlösungen
Xcode "incompatible architecture" errors (MacOS arm64-specific)
If both Xcode and Xcode command line tools are installed ($ xcode -select --install
, or directly download the correct version here), but the stack trace says otherwise like so:
xcrun: error: unable to load libxcrun
(dlopen(/Users/<user>/.electron_build_tools/third_party/Xcode/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib (http://xcode.app/Contents/Developer/usr/lib/libxcrun.dylib), 0x0005):
tried: '/Users/<user>/.electron_build_tools/third_party/Xcode/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib (http://xcode.app/Contents/Developer/usr/lib/libxcrun.dylib)'
(mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))), '/Users/<user>/.electron_build_tools/third_party/Xcode/Xcode-11.1.0.app/Contents/Developer/usr/lib/libxcrun.dylib (http://xcode-11.1.0.app/Contents/Developer/usr/lib/libxcrun.dylib)' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))).`
If you are on arm64 architecture, the build script may be pointing to the wrong Xcode version (11.x.y doesn't support arm64). Navigate to /Users/<user>/.electron_build_tools/third_party/Xcode/
and rename Xcode-13.3.0.app
to Xcode.app
to ensure the right Xcode version is used.
Certificates fail to verify
installing certifi
will fix the following error:
________ running 'python3 src/tools/clang/scripts/update.py' in '/Users/<user>/electron'
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Mac_arm64/clang-llvmorg-15-init-15652-g89a99ec9-1.tgz
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
Retrying in 5 s ...
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Mac_arm64/clang-llvmorg-15-init-15652-g89a99ec9-1.tgz
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
Retrying in 10 s ...
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Mac_arm64/clang-llvmorg-15-init-15652-g89a99ec9-1.tgz
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
Retrying in 20 s ...
This issue has to do with Python 3.6 using its own copy of OpenSSL in lieu of the deprecated Apple-supplied OpenSSL libraries. certifi
adds a curated bundle of default root certificates. This issue is documented in the Electron repo here. Further information about this issue can be found here and here.