2016-02-27 18 views
5

OSXエルキャピタンを避けるために、私が欲しい1.6OSX:ファイアウォール警告ダイアログ

に行くためにコード記号の実行可能ファイルは、タイトルからの音よりも簡単です。

OSXファイアウォールは、不明なアプリケーションが接続を受け入れることを許可しません。そのようなプログラムが開始されると、前記実行可能ファイルが接続の受信を許可されるべきか否かにかかわらず、ユーザにダイアログが提示される。ユーザの選択は記憶される。

たとえば、実際の実行可能ファイルが1つのバイナリであり、ユーザーが1度だけ許可/拒否する必要があるノードを使用して開発した場合、上の動作は問題ありません。

go(およびその他のコンパイル済み言語)で開発する場合、作成される実行ファイルは毎回異なります。つまり、サーバーを起動するたびにダイアログが表示されます。

このダイアログを回避する1つの方法は、OSX自体で生成される自己署名証明書を使用して実行可能ファイルに署名することです。証明書を取得したら、実行可能ファイルに署名して一度だけ許可/拒否します。実行可能なバイナリが変更された場合でも、コード署名は常に記憶されます。

だから、私の質問はです:

コンパイルされたバイナリを実行する前にgoが署名コマンドを実行する方法はありますか?

答えて

3

愚かな私。質問を書くのに5分、答えを見つけてそれを解決するスクリプトを書くのに2分かかりました。誰かが同じ問題を抱えている場合に備えて、私はここに掲載します。

binary=$GOPATH/pkg/kliron/hiss/hiss.a 
go build -o $binary hiss/main.go 
codesign -f -s klironCode $binary --deep 
$binary "[email protected]" 

ただgo buildを使用してください。

6

でも簡単に:のように、ローカルホスト上で明示的にサーバーを起動します。

http.ListenAndServe("localhost:8080", nil) 

私は最近、この上の小さな作品を書いた:

suppressing-accept-incoming-network-connections-warnings-on-osx

+0

ニース、共有するためのおかげで。しかし、OAuth2認証方式をテストしたり、他のオンラインサービスとやりとりしたりするために、外部インターフェースを聞く必要があるときがあります。確かに、あなたのホスト名を/ etc/hostのlocalhostにすることができます。それはすべての場合ではなくいくつかのもの(例えばoauth)に必要なすべてです。 – kliron

+0

/etc/host - >/etc/hosts – kliron

関連する問題