まず、Homebrew で作った app ファイルをリリースしようとしたときに、自分の Mac では動作するのに、渡した人の Mac では動作しない、という問題に遭遇しました。
これは OpenCV を使っていて、libopencv_highgui.2.4.8.dylib が libopencv_core.2.4.dylib を利用していて、そのあたりの依存関係を install_name_tool で変更してなかった! というのが原因でした。
最初は
$ brew unlink opencv
で opencv を無効にしていたのですが、これだとリリース用のフォルダにある libopencv_highgui.2.4.8.dylib が直接 /usr/local/Cellar/opencv/2.4.8.2/lib/libopencv_core.2.4.dylib に依存していたのを、自分の Mac では検出できません。
(unlink は Cellar と /usr/local/ とのシンボリックリンクを削除)
それで、思いついたのが以下の方法です!
$ cd /usr/local/ $ mv Cellar Cellar_orig
我ながら「強引だな!」と思います。
で、この方法でリリース用フォルダのプログラムが実行できることを確認したら、忘れずに以下のコマンドで Cellar を元に戻します。
$ mv Cellar_orig Cellar
まぁ、そもそもコマンドラインでビルドしてリリースするのが良くないんじゃないかな、とは思っています。(コマンドラインでなく XCode を使うとか?
悩ましいです…。