[electron-builder]Macビルドエラーの解決方法

Electron-builder mac build error

こんばんはエンジニアの眠れない夜です。

Macで順調にElectronのビルドができていたのに再起動をしたらビルドエラーが出るようになったので、その時の解決方法のメモです。

これが他の方に役に立てるか微妙なのですが、Electronの情報は少なく、バグも多くて直し方がよくわからないものが多いので一助になれることを願って書きます。

【Electron】Macビルドエラーの解決方法

まずは現在利用しているバージョンです。

バージョンによってバグや相性があり、最新版でバグを炸裂させまくっているのがElectronです。

この記事を読まれている頃は平和になっていることを願いします。

"electron": "^4.0.3",
"electron-builder": "^20.34.0",

私はあえてelectronのバージョンを4.0.3にしています。

4.0.4以降で発生するバグがあり、もうバージョン6.0も出ているというのに4.0.3にしたところエラーが消えた…(・・;)

という経験からこのバージョンを使っています。

エラーメッセージと解決したコマンド

エラーメッセージの主な部分の抜粋です。

spctl --assess --type execute --verbose --ignore-cache --no-cache

To ensure your native dependencies are always matched electron version, simply add script `"postinstall": "electron-builder install-app-deps" to your `package.json`

1行目のエラーでググるとMacのデベロッパー登録・認証システムがどうのこうのと言っています。私には分かりませんでした…(^_^;)

ちなみに現時点で私はAppleの有償のデベロッパー登録はしていません。

それでもElectronアプリの配布と自動アップデートは可能です。(Mac Windows共に)

下記のコマンドを実行したところビルドができない問題は解決しました。

sudo spctl --master-disable

その他の解決方法

Same problem ( electron-builder version=20.43.0 )
Works on 20.41.0

githubではバージョンを変えると可決したというコメントも多数ありました。

To ensure your native dependencies are always matched electron version, simply add script `"postinstall": "electron-builder install-app-deps" to your `package.json`

あと気になったのはElectronのバージョンがマッチしていないだけで、package.jsonのトップレベルに下記を追加すればエラーは消えるよ。と言っています。

私は先のコマンドで解決したのでこのコマンドが有効なのか今のところ未検証です。

"postinstall": "electron-builder install-app-deps",

※ ビルドができる状態で追加した限りでは問題ありませんでした。(有害ではないようです)

electron-builder install-app-deps

まとめ

Electronはマルチプラットフォームのデスクトップ環境で使えるアプリを開発できる素晴らしいフレームワークです。

しかし、ハマりどころが多く環境の調整に非常に時間が取られます。

素晴らしいフレームワークなので早く安定することを切に願います。

この記事が皆さんの一助になれば幸いです。

※ 間違っているところなどありましたらご指摘いただけますと幸いです。

2 Comments

通りすがり

macOSはgatekeeperというインターネット上から落としたアプリに対するセキュリティ機能があり、
それを突破するのに電子署名が必須なんです。
で、AppleDeveloperProgram(約1万円/年)に加入しておくと、macOS用アプリの証明書くれる上に、iOSのAppstoreにも出せるようになる(というかこれがメイン)なので、世のmacOS向けアプリ開発者は大体入ってて標準となっている……という流れです。

返信する
アバター画像 sleepless-se

ありがとうございます!そういうことなんですね(^_^;)
その辺のこと全然知らなくてとても参考になります。

返信する

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください