メインコンテンツへ飛ぶ

ビルド手順 (macOS)

カスタム Electron バイナリの作成にあたって macOS で Electron そのもの をビルドするには、以下のガイドラインに従ってください。 For bundling and distributing your app code with the prebuilt Electron binaries, see the application distribution guide.

必要な環境

  • macOS >= 11.6.0
  • Xcode. 必要なバージョンはビルドするブランチに依存しますが、一般に最新バージョンの Xcode であれば main のビルドに適しています。
  • Node.js (外部)
  • Python >= 3.7

arm64 固有の要件

  • Rosetta 2
    • x64 と arm64 のマシンでクロスコンパイルが必要な依存関係を使用する場合は、Rosetta のインストールを推奨します。 Rosetta は softwareupdate コマンドラインツールでインストールできます。
    • $ softwareupdate --install-rosetta

Electron のビルド

See Build Instructions: GN.

トラブルシューティング

Xcode の "incompatible architecture" エラー (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.appXcode.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 が Apple 提供の非推奨の OpenSSL ライブラリの代わりに 独自の OpenSSL のコピーを使用していることと関係があります。 certifi はデフォルトのルート証明書を集めたバンドルを追加します。 この問題は Electron レポジトリの こちら で文書化されています。 この問題のさらなる詳細については こちらこちら をご参照ください。