Mac OSXのアプリケーションのインストーラー作成ツール、PackageMakerの第4回目です。
InstallationCheck、VolumeCheck についてもう少し詳しく。
InstallationCheck、VolumeCheckによるチェック
これらのスクリプトを用意して置くと、インストールの時に、インストールできるかどうかのチェックを行うことができる、と
前回書いた。
これらのスクリプトで返す結果によって、PackageMakerで作成されたインストーラーの挙動を変えることができる。
例。スクリプトでの結果の返し方。
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、各チェックの返した結果によって変わる。
で、何故か、
InstallationCheck
・48〜63 は 32、
・112〜127 は 96、
VolumeCheck
・48〜63 は 32、
を引いた数のキーのメッセージを取得しようとする。
VolumeCheckで60を返した時は、
60 - 32 で
メッセージファイルのキー 28 のメッセージを表示しようとする、
ということです。
わかりづらい。。。
今日のまとめとしての例。
・ファイル構成
InstallationCheck
Japanese.lproj/InstallationCheck.string
・各ファイルの中身
InstallationCheck
#!/bin/sh
exit 120
Japanese.lproj/InstallationCheck.string
24="インストールできません。";
これらのファイルを、resourcesタブで指定したディレクトリに用意すると、
前記の表に従って (InstallationCheckで120の結果) インストールが中止され、
前述のとおり、キー "24" (120-96=24で) のメッセージが表示される。
今日はここまで。
resourcesタブはまだ続く予定です。
ではでは。