アプリケーションを設定するためのガイドライン
アプリケーションを設定するための第一の方法は、インフォメーションプロパティリスト ファイルを用いることです。このファイルには、アプリケーションを Finder と Launch Services に登録するために必要な情報が送られます。
以下のセクションでは、アプリケーションを設定する際にあなたはどのキーを使用すべきか、そしてアプリケーションを設定するための旧来のテクニックを示します。
インフォメーションプロパティリスト ファイル
アプリケーションバンドルは、アプリケーションを Finder および Launch Services に認識させるためのキーを持つインフォメーションプロパティリスト ファイルを、常に含む必要があります。
以下のセクションでは、あなたが含めるべき、必須のキー、そして推奨されるキーを説明します。これらのキーの完全な説明は、「プロパティリスト キー リファレンス」(15ページ)を参照してください。
必須プロパティ
以下のセクションでは、アプリケーションがそのインフォメーションプロパティリスト ファイルに含めるべきキーを列挙しています。
アプリケーション キー
最小限、すべてのアプリケーションは以下のキーを各自のインフォメーションプロパティリスト ファイルに含む必要があります…
- CFBundleDisplayName【ここ】
- CFBundleIdentifier【ここ】
- CFBundleName【ここ】
- CFBundlePackageType【ここ】
- CFBundleShortVersionString【ここ】
- CFBundleSignature【ここ】
- CFBundleVersion【ここ】
- LSHasLocalizedDisplayName【ここ】
- NSHumanReadableCopyright【ここ】
- NSAppleScriptEnabled【ここ】
これらのキーはあなたのアプリケーションをシステムに認識させ、それが提供するサービスについての基本的な情報のいくつかを提供します。
書類 キー
もしあなたのアプリケーションが、自らを一つかそれ以上の書類タイプと関連付けているのであれば、あなたはこれらのタイプを認識するために CFBundleDocumentTypes キーを含める必要があります。書類タイプごとのエントリは、以下のキーを格納すべきです…
これらのキーに加えて、以下のキーの中から最低一つは含む必要があります…
推奨プロパティ
もし、あなたが CFM ベースのアプリケーションを開発しているのであれば、あなたのアプリケーションの対象オペレーティング環境を、常に指定する必要があります。
Carbon アプリケーションは Mac OS X において、もしくは Classic 互換性環境において、いずれかでネイティブに実行することができます。
ネイティブ環境が優先されていたとしても、あなたは旧来のプラグインに対応するために、あなたのアプリケーションを Classic 環境で実行する必要があるかもしれません。
あなたのアプリケーションをどの環境で実行させたいかを指定するためには、あなたのインフォメーションプロパティリスト ファイル内に以下の一つを含めてください…
もしこれらのキーの一つを含めなければ、システムはあなたの実行可能ファイルを見て、最も適切な実行環境を判断しようとします。Mach-O 実行可能ファイルは常にネイティブ Mac OS X 環境において実行します。けれども、疑わしいときには、システムは非 Mach-O 実行可能ファイルを Classic 互換性環境において実行します。
各国語化プロパティ
以下の一覧は、あなたの言語固有の InfoPlist.strings ファイル内に含めるのがふさわしいキーを含んでいます。
- CFBundleDisplayName【これ】
- CFBundleName【これ】
- CFBundleShortVersionString【これ】
- NSHumanReadableCopyright【これ】
- CFBundleGetInfoString【これ】
書類の設定
インフォメーションプロパティリスト ファイルは、あなたのアプリケーションが、対応する書類タイプおよびクリップボード(ペーストボード)タイプのために演じる役割を、あなたに定義させます。この役割は、あなたのアプリケーションと関連付けられたタイプとの間の関連性を定義します。
あなたのアプリケーションは、与えられるあらゆるタイプに対して、以下の役割の一つを取ることができます。
- Editor【編集者】。アプリケーションはそのタイプを読み、操作し、保存することができます。
- Viewer【表示器】。アプリケーションはそのタイプのデータを読み、表示させることができます。
- Shell【シェル】。アプリケーションは他のプロセスのための実行時サービスを提供します―たとえば、Java アプレットビューアのように。書類の名前は(アプリケーションの名前の代わりに)ホストされるプロセスの名前です。そして、書類が開かれるたびに新しいプロセスが作成されます。
- None【なし】。アプリケーションはデータを理解せず、タイプに関する情報の宣言だけを行います(たとえば、Finder はフォントのためのアイコンを宣言します【Finder はフォントを編集するためのアプリケーションではないが、ファイルアイコンを表示するためにフォントに関する宣言を行う、という場合】)。
あなたの選んだ役割は、書類タイプやクリップボードタイプと関連付けられた、すべての具体的な形式に対して適用されます。
たとえば、Safari アプリケーションは、自らを".html"、".htm"、"shtml"、"jhtml"ファイル名拡張子を持つ書類のためのビューアとして関連付けています。これらの拡張子のそれぞれは、HTML 書類の全体的な区分に分類される、書類の具体的なタイプを表しています。
この同じ書類は、MIME タイプや、Mac OS 9 でファイルを識別するために用いられる、4バイトの OS タイプにも対応することができます。
PkgInfo ファイル
PkgInfo ファイルは、あなたのアプリケーションやバンドルのタイプとクリエータコードを指定するための、別のやり方です。このファイルは必須ではありませんが、この情報にアクセスするコードのための性能を向上させることができます。
あなたがこのファイルを提供するかどうかに関わらず、あなたは常にタイプとクリエータ情報を、それぞれあなたのインフォメーションプロパティリスト ファイルのCFBundlePackageType と CFBundleSignature キーを用いて含めるべきです。
PkgInfo ファイルの内容は、4バイトのパッケージタイプと、それに続くあなたのアプリケーションの4バイトのシグネチャです。
従って、タイプが'APPL'でシグネチャが'ttxt'である、テキストエディット アプリケーションの場合は、ファイルには"APPLttxt"というASCII文字列を格納することになるでしょう。
'plist'リソースを使用する
設定情報を単一のファイル、すなわちCFM ベースのアプリケーションへ組み込むことが可能です。ですが、もしあなたのアプリケーションを―Classic 互換性環境で実行するのとは反対に― Mac OS X でネイティブに実行させたいのであれば、あなたは'plst'リソースを提供しなければいけません。
'plst'リソースは、Finder があなたのアプリケーションと書類タイプを適切に扱えるようにします。もしあなたのアプリケーションがこのリソースを含まなければ、Finder は自動的にあなたのアプリケーションを Classic 互換性環境内で実行します。
'plst'リソースを作成するには、あなたのアプリケーションのリソースフォークに ID 0 の新規インスタンスを追加します。
このリソースの内容は、あなたのアプリケーションがバンドルだった場合にそうなるはずの Info.plist の内容からの、生の XML テキストとなります。
この XML データのエンコーディングは UTF-8 とする必要があります。
バンドル形式ではない Mach-O 実行可能ファイル内にインフォメーションプロパティリスト ファイルを含めるための情報は、「フラットな実行可能ファイルに Info.plist を加える」(14ページ)を参照してください。
起動引数を使用する
もしあなたに Cocoa アプリケーションがあれば、あなたはユーザデフォルト設定の多くを、コマンドライン上で指定することにより上書きすることができます。
加えて、Cocoa はファイルを開き、印刷するための、少数の追加の引数を認識します。
表 1 は Cocoa アプリケーションのための、より一般的に使用されるコマンドライン引数を一覧にしています。
表 1 Cocoa アプリケーションのためのコマンドライン引数
引数 | 説明 |
---|---|
-NSOpen ファイル名 |
アプリケーションの起動が完了した後で、指定したファイルを開きます。 ファイルを開くために、アプリケーションのデリゲートの、application: openFile: メソッドを使用します。 |
-NSOpenTemp ファイル名 |
アプリケーションの起動が完了した後で、指定したファイルを一時ファイルとして開きます。 ファイルを開くために、アプリケーションのデリゲートの、application: openTempFile: メソッドを使用します。 |
-NSPrint ファイル名 |
アプリケーションの起動が完了した後で、指定したファイルを印刷します。 ファイルを印刷するために、アプリケーションのデリゲートの、application: printFile: メソッドを使用します。 |
-NSShowAllDrawing <YES> |
あなたのビューのどの部分が更新されるのかを、あなたが見えるように、描画されようとしている領域を黄色で表します。 これは、Quartz Debug アプリケーションを通じて利用できる機能と同じですが、指定したアプリケーション上でのみ作用します。 |
-NSTraceEvents<YES> | アプリケーションが受信したイベントの、実行中ログを表示します。 |
【/Applications/TextEdit.app/Contents/MacOS/TextEdit -NSShowAllDrawing YES のようにターミナルから入力する。】