シェルスクリプトなどの CUI アプリケーションを Mac OS X 方式の .app にする方法
目次
シェルスクリプトをアプリケーションに変換
はじめに
単純にシェルスクリプトをアプリケーションにしたいだけならば Automator を使えば簡単に出来ます。
ただ、以下のような理由により Automator を使わずにアプリケーションを作りたい場合があります。
- 完全に自動化した形でアプリケーションを作成したい
- Mac OS X 以外の環境で作成したい
ここではその方法について記述します。
サンプルファイル
サンプルで Firefox の ProfileManager を開くアプリケーションを作ってみます。
完成品はコチラ FirefoxProfileManager.app.zip
[ Step1 ] アイコンを作る
128x128 でアイコンを作ります。形式は tiff で。

これを tiff2icns でアイコンファイルに変換します。
% tiff2icns icon.tiff icon.icns
[ Step2 ] コマンドを用意する
Firefox の ProfileManager を開くコマンドを用意します。 以下の内容のファイルを core.sh として保存します。
#!/bin/sh /Applications/Firefox.app/Contents/MacOS/firefox -ProfileManager & exit 0
core.sh に実行属性を付けるのを忘れないように!!
% chmod 755 core.sh
[ Step3 ] Contents ディレクトリを作ってファイルを格納する
アイコンやコマンドを格納する Contents ディレクトリを作成します。 Contents の下には MacOS と Resources ディレクトリを作ります。
% mkdir Contents % mkdir Contents/MacOS % mkdir Contents/Resources
そうしたら MacOS の下にコマンド (core.sh) を、 Resources の下にアイコンを置きます。
% find Contents Contents Contents/MacOS Contents/MacOS/core.sh Contents/Resources Contents/Resources/icon.icns
繰り返しになりますが core.sh に実行属性を忘れないようにしましょう。
% chmod 755 Contents/MacOS/core.sh
[ Step4 ] Info.plist を置く
Contents ディレクトリの直下に Info.plist というファイルを置きます。
Contents Contents/Info.plist Contents/MacOS Contents/MacOS/core.sh Contents/Resources Contents/Resources/icon.icns
[ Step5 ] Contents ディレクトリを .app に格納する
最後に Contents ディレクトリを .app に格納します。
% mkdir FirefoxProfileManager.app % mv Contents FirefoxProfileManager.app
ちなみに Finder で見たときアイコンがデフォルトのものになっていた場合は、一度再起動すれば直ります。
[ まとめ ]
このサンプルを落として、 core.sh と icon.icon を差し替えれば OK。