おおくまねこ

職業プログラマーです。興味のある話題を書いています。

Macで自作バイナリを実行するときに実行ブロックされた時の対応

はじめに

GoやRustでNativeバイナリを作成し、実行する時にポップアップが表示されて実行ができない。

MacOSには Gatekeeper という機能により、Appleによる署名や公証バイナリのチェックがなされ、確認を通過できないと実行させない仕組みがある。

その時の対処方法。

正攻法

バイナリ側にAppleの認証が通るように設定してもらう。
- Developer ID
- Apple notarization

配布側に依頼できるのであれば、対応してもらうのが一番良いと思われる。

一時的に許可。バイナリを半強制的に実行する。

以下の手順
1. Finderから対象のバイナリを右クリックし、「開く」を選択。
2. 「開いてもよろしいですか?」のような確認がされるので、「開く」を選択。
3. バイナリは実行される。

一度許可すれば、効果が有効な間は再度の実行やCLIからの実行も可能になるようだ。

一時的に許可。システム設定から許可

  1. バイナリを実行
  2. 「〜Appleでは確認できないため、このソフトウェアは開けません」が出る。
  3. この状態でMacの「システム設定」を開き「プライバシーとセキュリティ」を選択、「このまま開く」を選択

実行可能になる

CLI操作によるquarantine除去による検証スキップ

xattr -d com.apple.quarantine </path/to/binary>

バイナリ単位でquarantineを操作して認証をスキップする。

参考 - keith.github.io - support.apple.com