跳转到主要内容

构建说明 (macOS)

请遵循以下指南来构建 **Electron 本身**,以便创建自定义 Electron 二进制文件。有关使用预构建的 Electron 二进制文件打包和分发您的应用程序代码,请参阅 应用程序分发 指南。

先决条件

  • macOS >= 11.6.0
  • Xcode。所需的具体版本取决于您正在构建的分支,但最新版本的 Xcode 通常是构建 main 的最佳选择。
  • Python >= 3.9
  • Node.js >= 22.12.0

特定于 Arm64 的先决条件

  • Rosetta 2
    • 我们建议在可能需要跨 x64 和 arm64 计算机进行编译的依赖项时安装 Rosetta。可以使用软件更新命令行工具安装 Rosetta。
    • $ softwareupdate --install-rosetta

构建 Electron

请参阅 构建说明:GN

故障排除

Xcode “不兼容的架构”错误(macOS 特定于 arm64)

如果同时安装了 Xcode 和 Xcode 命令行工具($ xcode -select --install,或 此处直接下载正确版本),但堆栈跟踪显示其他信息,如下所示:

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)))).`

如果您使用的是 arm64 架构,构建脚本可能指向了错误的 Xcode 版本(11.x.y 不支持 arm64)。请导航到 /Users/<user>/.electron_build_tools/third_party/Xcode/ 并将 Xcode-13.3.0.app 重命名为 Xcode.app,以确保使用了正确的 Xcode 版本。

证书验证失败

安装 certifi 将会修复以下错误:

________ 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 ...

此问题与 Python 3.6 使用其 自己的 OpenSSL 副本而不是已弃用的 Apple 提供的 OpenSSL 库有关。certifi 添加了一个经过精心整理的默认根证书捆绑包。此问题在 Electron 仓库中 此处有记录。有关此问题的更多信息可以在 此处此处 找到。