MacでのElectronの開発で、「アプリケーション"○○.app"へのネットワーク受信接続を許可しますか?」というアラートが起動するたびに表示される
ソフトウェア | バージョン |
---|---|
node | 14.15.4 |
npm | 7.5.4 |
electron | 12.0.2 |
- 自己署名証明書の発行
- キーチェインから新たな証明書を作成
- ターミナルからcodesignコマンドでアプリに適用
- 起動するサーバーのIP設定
キーチェンアクセス
を開くキーチェンアクセス > 証明書アシスタント > 証明書を作成
から作成画面を開く- 以下の項目を記入
- 名前
- 用途がわかる名前にする
- 固有名タイプ
- 「自己署名ルート」
- 証明書タイプ
- 「コード署名」
- デフォルトを無効化
- 有効にする
- 名前
- 作成した自己署名証明書をプロジェクト内の
Electron.app
に適用する$ codesign --deep --force --verbose --sign "自己証明書の名前" プロジェクトまでの絶対パス/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron
- 適用されていることを確認する
$ codesign --verify -vvvv プロジェクトまでの絶対パス/node_modules/electron/dist/Electron.app
- 以下の表示がされていれば適用されている
-
Application.app: valid on disk Application.app: satisfies its Designated Requirement
-
アプリケーションへのネットワーク受信接続を許可しますか?と毎回聞かれる様になった時の対処法
Electron - Signing a Mac Application
- Electronのメインプロセスで起動する
BrowserWindow
のurlを127.0.0.1:ポート番号
にするlocalhost
とか0.0.0.0
とかにするとローカルのすべてのIPv4アドレスに対して指定したポート番号でサーバーが待機することになるっぽい- なので、Mac側からしたら、「Macの外部にポートを開放しようとしているけど、OK?」という意図でアラートを出していたようだ