pkgbuildコマンドによるスクリプト実行方法とパラメーター
Macではpkgbuildとproductbuildを組み合わせてインストーラーを作りますが、pkgbuildで--scriptオプションを使用すると、インストールの実行前と完了後にスクリプトを実行することができます。
これによって、インストーラーを実行中にファイルを削除したり、デスクトップにエイリアスを作成したり、インストールに必要な事前チェックを行うなど、細かな制御ができるようになり大変便利です。
スクリプトの実行方法
まず、preinstallとpostinstallというファイルを作成します。それぞれインストール実行前、インストール完了後に走らせるスクリプトになります。
ファイルの中身はシェルスクリプトで書けば大丈夫です。これらのファイルを以下のように適当なディレクトリの中に入れておきます。
/Applications/devel/script
|-- preinstall
|-- postinstall
あとは、pkgbuildを実行する際に--scriptオプションを使ってこのディレクトリ名を指定すれば良いだけです。pkgbuildの詳細な実行方法はMacインストーラーの作成方法のページを参照してください。
ただ、スクリプトを実行させるにあたって必要になるのが、インストールディレクトリのパスやボリューム名などです。インストールするパスが固定されているのであれば不要ですが、ユーザーにインストールする場所を選択させるような場合には、これらの値を取得しなければなりません。
pkgbuildでのパラメーター
pkgbuildには、以下のようにあらかじめ設定されたパラメーターがあります。
$0 - Script path
$1 - Package path
$2 - Target location
$3 - Target volume
$1 - Package path
$2 - Target location
$3 - Target volume
これらの値を上記のシェルスクリプトに組み込んでおけば、インストールディレクトリやパッケージが配置された場所を取得することができます。
このパラメーターが使えるようになると、インストール完了後にデスクトップにエイリアスを作成するというようなことができるようになります。エイリアスの作り方はMacでエイリアスをコマンドラインから作成する方法のページをご参照ください。
ちなみにこれらの値はPackageMakerでも使うことができます。PackageMakerはXCode4.6からはdeprecatedになって推奨されていませんが、一応動作させることができます。