Skip to content

Instantly share code, notes, and snippets.

@LeeDDHH
Last active April 17, 2021 04:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LeeDDHH/dd8482ffcdb058a708d5c5c8154815ca to your computer and use it in GitHub Desktop.
Save LeeDDHH/dd8482ffcdb058a708d5c5c8154815ca to your computer and use it in GitHub Desktop.
macでElectronの開発時に「ネットワーク受信接続を許可しますか?」と聞かれたときの対応

発生した現象

MacでのElectronの開発で、「アプリケーション"○○.app"へのネットワーク受信接続を許可しますか?」というアラートが起動するたびに表示される

発生した環境

ソフトウェア バージョン
node 14.15.4
npm 7.5.4
electron 12.0.2

解決手順

  • 自己署名証明書の発行
    • キーチェインから新たな証明書を作成
    • ターミナルからcodesignコマンドでアプリに適用
  • 起動するサーバーのIP設定

自己署名証明書の発行

キーチェインから新たな証明書を作成

  • キーチェンアクセス を開く
  • キーチェンアクセス > 証明書アシスタント > 証明書を作成 から作成画面を開く
  • 以下の項目を記入
    • 名前
      • 用途がわかる名前にする
    • 固有名タイプ
      • 「自己署名ルート」
    • 証明書タイプ
      • 「コード署名」
    • デフォルトを無効化
      • 有効にする

ターミナルからcodesignコマンドでアプリに適用

  • 作成した自己署名証明書をプロジェクト内の 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

起動するサーバーのIP設定

  • Electronのメインプロセスで起動する BrowserWindow のurlを 127.0.0.1:ポート番号 にする
    • localhost とか 0.0.0.0 とかにするとローカルのすべてのIPv4アドレスに対して指定したポート番号でサーバーが待機することになるっぽい
    • なので、Mac側からしたら、「Macの外部にポートを開放しようとしているけど、OK?」という意図でアラートを出していたようだ

Goで「ネットワーク受信接続を許可しますか?」を回避する - Qiita

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment