Saltar al contenido principal

Instrucciones de compilación (macOS)

Siga las siguientes pautas para la construcción de Electron en sí mismo en macOS, con el fin de crear binarios personalizados de Electron. For bundling and distributing your app code with the prebuilt Electron binaries, see the application distribution guide.

Prerequisites

  • macOS >= 11.6.0
  • Xcode. La versión exacta necesaria depende de qué rama estás construyendo, pero la última versión de Xcode es generalmente una buena apuesta para construir main.
  • node.js (externo)
  • Python >= 3.7

Prerrequisitos específicos de Arm-64

  • Rosetta 2
    • Recomendamos instalar Rosetta si usa dependencias que necesitan compilar cruzadamente en máquinas x64 y arm64. Rosetta se puede instalar utilizando la herramienta de línea de comandos de softwareupdate.
    • $ softwareupdate --install-rosetta

Construyendo Electron

See Build Instructions: GN.

Problemas

Errores de Xcode de "arquitectura incompatible" (específicos de MacOS arm64)

Si tanto Xcode como las herramientas de línea de comandos de Xcode están instaladas ($ xcode -select --install, o descargar directamente la versión correcta aquí), pero el stack trace dice lo contrario:

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

Si está en la arquitectura arm64, el script de compilación puede estar apuntando a la versión incorrecta de Xcode (11.x.y no soporta arm64). Vaya a /Users/<user>/.electron_build_tools/third_party/Xcode/ y cambie el nombre de Xcode-13.3.0.app a Xcode.app para asegurarse de que se utiliza la versión correcta de Xcode.

Fallo al verificar los certificados

Instalar certifi corregirá el siguiente 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 ...

Este problema tiene que ver con Python 3.6 usando su propia copia de OpenSSL en lugar de las bibliotecas OpenSSL obsoletas proporcionadas por Apple. certifi agrega un paquete curado de certificados raíz predeterminados. Este asunto está documentado en el repositorio de Electron aquí. Puedes encontrar más información sobre este problema aquí y aquí.