Aller au contenu principal

Instructions pour compiler Electron (macOS)

Suivez les instructions ci-dessous pour compiler Electron lui même sur macOS, afin d'obtenir une version personnalisée d'Electron. Pour regrouper et distribuer le code de votre application avec les binaires précompilés d'Electron, reportez-vous au guide de la distribution d'applications.

Prérequis

  • macOS >= 11.6.0
  • Xcode. La version exacte requise dépend de la branche que vous compilez, mais la dernière version de Xcode est généralement un bon choix pour compiler main.
  • node.js (externe)
  • Python >= 3.7

Prérequis spécifiques à Arm64

  • Rosetta 2
    • Nous recommandons d'installer Rosetta si vous utilisez des dépendances qui nécessitent une compilation croisée sur des machines x64 et arm64. Rosetta peut être installé en utilisant l'outil en ligne de commande softwareupdate.
    • $ softwareupdate --install-rosetta

Compilation d'Electron

Voir les Instructions de compilation : GN.

Résolution de problème

Erreurs Xcode "architecture incompatible" (spécifique à MacOS arm64)

Si les outils de ligne de commande Xcode et Xcode sont installés ($ xcode -select --install,, ou la version correcte téléchargée directement ici), mais que la trace de la pile indique le contraire comme ceci:

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 votre processeur est un arm64, le script de build peut vous indiquer une mauvaise version de Xcode (11.x.y n'est pas compatible avec arm64). Naviguez alors vers /Users/<user>/.electron_build_tools/third_party/Xcode/ et renommez Xcode-13.3.0.app en Xcode.app pour vous assurer que la bonne version de Xcode est utilisée.

Les certificats n'ont pas pu être vérifiés

l'installation de certifi corrigera l'erreur suivante :

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

Ce problème est lié au fait que Python 3.6 utilise sa propre copie de OpenSSL au lieu des bibliothèques OpenSSL obsolètes fournies par Apple. certifi ajoute par défaut un ensemble de certificats racine sélectionnés . Ce problème est documenté dans le dépôt d'Electron. Plus d'informations à propos de ce problème peuvent être trouvées ici et ici.