mac : 「ネットワーク受信接続を許可しますか」

はじめに

Unityでbuildしたappを起動すると、「ネットワーク受信接続を許可しますか」と聞かれてしまう。OKすればいいように思えるが、例えばupd受信をするscriptなどでは、この操作をしている間に、Start関数を通り過ぎてしまうようで、初期化が成功せず、以降、udp受信ができない、と言う現象が起こる。

システム環境設定/セキュリティとプライバシー/ファイアウォールから、ファイアウォールオプション画面で同appを登録してもダメ。

そこで、根本的な対応を調査した。

対応 1

システム環境設定/ セキュリティとプライバシーから、ファイアウォーツをOffにすると、上記の警告は出なくなる。

もし、internetにつながずにappを使用する場合は、これでもいいだろう。
しかし、つなぐ場合は、避けたい手段です。

対応 2

Finder->アプリケーション->ユーティリティ->キーチェーンアクセスを実行します。
[キーチェーンアクセス]メニュー->証明書アシスタント->[証明書を作成…]をクリックする。
------------------------------------------
名前                            SaijoCertなど、適当に
固定名のタイプ         自署署名ルート
証明書のタイプ         コード署名
デフォルトを無効化  チェックON
------------------------------------------

* 作成]ボタンを押す。
* 警告メッセージが表示されるので、[続ける]ボタンを押し、先に進む。
シリアル番号はそのまま、有効日数は3650日等、長めのものにして、[続ける]ボタンを押す。
* メールアドレスが適切なものかを確認し、[続ける]ボタンを押す。組織や都市、都道府県等は省略しても入力してもどちらでも良い
* アルゴリズムはRSAのままで良いので[続ける]ボタンを押す。
* 鍵用途拡張領域の画面はそのままで良いので[続ける]ボタンを押す。
* 次の鍵用途拡張領域の画面もそのままで良いので[続ける]ボタンを押す。
* 次の鍵用途拡張領域の画面もそのままで良いので[続ける]ボタンを押す。
* 次のサブジェクト代替名拡張領域の画面もそのままで良いので[続ける]ボタンを押す。
* キーチェーンの種類は[ログイン]のままで良いので[作成]ボタンを押す。
* [完了]ボタンを押して、キーチェーンアクセスを終了する。

さらに、秘密鍵を右クリックし、情報を見る、からアクセス制御のタブへ行き、「この項目の使用をすべてすべてのアプリケーションに許可」をcheckします。

画像1

ターミナルを開き、appのあるフォルダまで移動。
以下のコマンドを入力する。(sudoは不要)

> codesign -s "署名名(SaijoCert)" -f xxx.app --deep

passwordを要求されるかもしれませんが、passwordを打って通過してください。
続けてターミナル上で以下のコマンドを入力し、Authorityに指定した証明書が設定されているか確認する。

> codesign -dvv xxx.app

続けてターミナル上で以下のコマンドを入力し、[valid on disk]が表示されるか確認する。

> codesign -vv xxx.app

これで、OK。

参考URL

* 起動する度に「ネットワーク受信接続を許可しますか」を表示させない手順

もしよろしければ、サポートをお願いします! 頂いたサポートは、Creatorとしての活動費に充てさせて頂きます。