セクション

Package Maker #4 (インストールの必須条件のチェック)

作者: 小見 拓 最終変更 2009年12月05日 20時53分

この記事では「Package Maker」で作成されるインストーラーで行われる インストールの必須条件のチェック方法についての説明をします。 (Mac)

概要

この記事では「Package Maker」で作成されるインストーラーで行われる インストールの必須条件のチェック方法についての説明をします。

InstallationCheck、VolumeCheckによるチェック

インストール時に、インストールの必須条件が整っているかをチェックするためには、 「InstallationCheck」「VolumeCheck」という名前のスクリプトを用意します。
このスクリプトが返す結果で、 「Package Maker」で作成するインストーラーの挙動を変えられます。

# 例。スクリプトでの結果の返し方。
#!/bin/sh
exit 127

InstallationCheckスクリプト

返すコード チェックの結果 備考
0 成功 そのままインストールは継続される。
32 警告表示 「インストールできません」と警告を表示。インストール作業は継続する。
48~63 警告表示 上と同じく警告を表示するが、表示するメッセージを指定できる。
64 インストール中止 インストールを中止する。
112~127 インストール中止 上と同じくインストールを中止するが、表示するメッセージを指定できる。

VolumeCheckスクリプト

返すコード チェックの結果 備考
0 成功 そのままインストールは継続される。
32 失敗 インストールを失敗させる。
48~63 失敗 上と同じくインストールを失敗させるが、表示するメッセージを指定できる。

メッセージファイル

メッセージファイルの名前

表示するメッセージは、Mac OSX独自の形式でローカライズされたメッセージファイルを使って、 指定します。
インストーラーは、

  • InstallationCheckが原因でメッセージを表示する時は「InstallationCheck.string」から、
  • VolumeCheckが原因でメッセージを表示する時は「VolumeCheck.string」から、

メッセージを取得して表示します。

メッセージファイルの書式

メッセージファイルのフォーマットは次の書式です。

メッセージ1のキー="表示するメッセージ1";
メッセージ2のキー="表示するメッセージ2";

メッセージファイルを置く場所

特定ロケール用のメッセージファイルは、「ロケール名 + .lproj」という名前のディレクトリ を用意し、そのディレクトリ内に配置します。

  • 日本の場合は「Japanese.lproj」
  • 英語圏の場合は「English.lproj」

という名前のディレクトリに、 そのロケール用のメッセージファイルを入れます。

メッセージのキー

メッセージファイルからメッセージを取得するキーは、 InstallationCheck、VolumeCheck、各スクリプトの返した結果から決定されます。
下に用意した表はその対応表です。

スクリプトの結果と、表示するメッセージのキーの対応表
スクリプト 48 ~ 63 112 ~ 127
InstallationCheck (スクリプトで返した値 - 32) (スクリプトで返した値 - 96)
VolumeCheck (スクリプトで返した値 - 32)  

例えば、VolumeCheckで「60」を返した場合は、

60 - 32

となり、メッセージファイルのキー「28」のメッセージを表示します。

サンプル

下記に記述したファイルを用意し、「Package Maker」のResourcesタブで指定すると、
前記の表に従って(InstallationCheckで120の結果) インストールが中止され、
前述のとおり、キー「24」 (120-96=24で) のメッセージが表示されます。

ファイルの構成

InstallationCheck
Japanese.lproj/InstallationCheck.string

各ファイルの中身

# InstallationCheck
#!/bin/sh
exit 120
# Japanese.lproj/InstallationCheck.string
24="インストールできません。";
ドキュメントアクション
コメント
{no}. {user_name}  {posted}
{message_body}

(必須)
氏名を入力してください。
Eメールアドレスを入力してください。
(必須)
送りたいメッセージを入力してください。
Recent Comment
EnhCommentify.vim : 複数のファイルタイプに対応したソースコメントアウト、コメントアウト解除スクリプト — 名無しのvim使い
==> anonymous [2010/03/22 06:32:47]
vimエディタから外部のプログラムやコマンドを実行する。 — 名無しのvim使い
==> 通りすがりnoです [2010/02/04 18:28:49]
==> 通りすがりの者です [2010/02/04 18:30:28]
==> 通りすがりのものです2 [2010/02/04 18:41:38]
PCに昨日初めてさわった人でもわかるgvim超々入門 (Windows、vim6) — 名無しのvim使い
==> anonymous [2009/11/05 11:57:11]
==> 佐藤 よしお [2009/11/27 15:53:34]
==> 小見 拓 [2009/11/27 18:40:42]
==> anonymous [2010/01/06 19:48:09]
Update Feed
RSS1.0 / RSS2.0 / ATOM