作成 - productbuild macos




PackageMakerを使用してインストール時にスクリプトを実行する (2)

私はインストーラを作成するために必要なアプリケーションを持っており、インストーラはすべて(アプリケーションのコピーに加えて)アプリケーション自体の一部ではないスクリプト(または実行可能ファイル)を実行する必要があります。 どのように私はこれを行うことができますか? [ 要件 ]タブには[ スクリプトの結果 ] アクションがあり、 [ファイルを開く ] アクションがある [ アクション ]タブにはプレインストールアクションもあります。 これらのどちらかが仕事をしているのでしょうか、私は他の場所を見なければなりませんか?


Hereは良いハウツーがあります

インストールプロセス中に起動できるスクリプトには7種類あります。

InstallationCheck:このスクリプトは、インストールプロセスの始めに(認証ステップの前でも)起動されます。 このコンピュータにパッケージをインストールできることを確認するために使用できます。

VolumeCheck:このスクリプトは、[Select Destination]ステップで起動します。 これは、パッケージをインストールできるボリュームを決定するために使用されます。

preflight:このスクリプトは、ユーザーが「インストール」ボタンをクリックした直後に起動されます。

preinstall / preupgrade:このスクリプトは、プリフライトスクリプトの後に起動します(パッケージが1つだけインストールされている場合)。 それ以外の場合は、ユーザーが「インストール」ボタンをクリックした直後です。

ご覧のとおり、ここには2種類のスクリプトがあります。 パッケージが一度もインストールされていない場合(Installer.appの観点から)、パッケージがすでにインストールされている場合には、プレインストール前のパッケージが起動されます。 パッケージが既にインストールされているかどうかを確認するには、Installer.appが/ Library / Receiptsというディレクトリの内容を調べています。 その中にPackageName.pkgという名前のファイルがある場合、そのパッケージはすでにインストールされています。それ以外の場合は最初のインストールです。

postinstall / postupgrade:このスクリプトは、パッケージ内のファイルがインストールされた後に起動されます。 どちらが起動されているかは、(preinstall / preupgrade)を参照してください。

postflight:このスクリプトは、postinstall / postupgradeスクリプトの後、またはパッケージがインストールされたときに起動されます。


このHere記事は古くなっていますが、半分の方法についてのスクリプトには非常に有用な情報があります。 シェルとperlから見たコマンドライン変数と有用な終了ステータス値を示す表を探します。





packagemaker