macOS Sierra で codesign してネットワーク通信時のダイアログを抑制する術 を参考にして 同様にやってみたら Mojave でも Catalina でも同様だったので、全体をスクリーンショットを取りつつまとめてみました。

Catalina 版はこちらです。

動作確認環境

  • macOS Mojave 10.14.6

証明書作成

キーチェーンアクセスから「証明書を作成」を開きます。

適当な名前を入力して、証明書のタイプを「コード署名」にします。 コード署名専用にするために「デフォルトを無効化」にチェックをいれておきます。 ここで入力した名前は後で RUBY_CODESIGN 環境変数に設定する名前になります。

注意書きが出てくるので「続ける」をクリックします。

有効期間がデフォルトでは 365 日なので、例えば 3650 などに伸ばしても良いようです。 medium の記事に書いてあるように最大は 7300 のようで、 Mojave でも同じでした。

次の画面でメールアドレスが入っていても、消してしまっても構いません。 他はデフォルトのまま証明書の保管場所まで進んでいきます。

証明書の保管場所を「システム」に変更します。

後ろに仕上げ中と出た状態で認証を要求されます。 (スクリーンショットは後ろ側だけになってしまいました。)

認証が通ると証明書が作成されます。

完了を押すとまた認証を要求されます。

システムキーチェーンの証明書に入っているのを確認します。

「情報を見る」を開きます。

「信頼」を開いて「コード署名」を「常に信頼」にします。 閉じる時に Touch ID で変更を許可します。

証明書の横の三角形でツリーを開いて、下にある秘密鍵の「情報を見る」を開きます。

「アクセス制御」で許可します。 閉じる時に Touch ID で許可しても、なぜかさらにパスワードを要求されるようです。

最後のアクセス制御はできれば ruby のビルドプロセスからのみにしたいところですが、 同様のコマンドを実行すれば使えてしまうので、意味のある制限は難しそうです。

シェル側の設定

.bashrcexport RUBY_CODESIGN=ruby-codesign-2020 を追加するなどの方法で環境変数を設定します。

rm miniruby; make miniruby などのビルド時に認証のダイアログが出なくて、 テスト実行中にネットワークの許可も出なければ設定完了です。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published