Macでの各種設定のトラブル
Mac OS X のファイル関連付けのしくみ
Mac OS X でファイルの関連付けを変更する方法を御存じですか?これ、結構知らない人が多いみたいなんですが、Finderの“ファイル - 情報を見る”コマンドから「このアプリケーションで開く」という設定を変更します。

で、この設定パネルで“デフォルト”になっているアプリケーションがありますよね?それに、ファイルの拡張子によっては、利用できるソフトの数が多かったり、少なかったりします。あれって、だれがいつ、どこで設定しているものなのでしょう?
答えは、そのアプリケーション自身なのです。
Mac OS X 上ではアプリケーション毎に内蔵されている PropertyList (plist) と呼ばれるテキストの記述によりファイル関連付けのしくみを実現しています。
アプリケーション上で、control + クリックするとメニューが開きますので、そこから“パッケージの内容を表示”を選んで下さい。
【TextEdit のパッケージの中身】
では、具体的にどの部分がどのような意味を持つのでしょう?
<key>CFBundleDocumentTypes</key>
と書かれた部分以降をよく見て下さい。
こちらの設定には、“拡張子”を記入します。TextEdit では大文字、小文字の拡張子を並べて記入しています。このように複数の指定を書くことも可能です。指定内容は<array></array>で囲んだ範囲が適用されます。すべての拡張子を指定したい場合<array>*</array>とするようです。
●<key>CFBundleTypeIconFile</key>
その名前が示すように、ドキュメントのアイコンとなるファイルを指定します。パッケージ形式ではplistにアイコンファイル名を記入しますが、Mac OS 9世代のアプリケーションではリソースID を記入します。例えば、ICN# 256 のアイコンを適用したい場合、<array>256</array>とだけ書きます。
※ただし、icns リソース(128ドットのアイコン)に該当するIDがないと、うまく動作しないようです。
●<key>CFBundleTypeOSTypes</key>
これは、古くからのMacユーザーにもなじみの深い“ファイルタイプ”の指定になります。例えば、TextEidt では テキストファイルのファイルタイプは‘TEXT’となっています。
<string>Viewer</string>
そのアプリケーションが書類に対してどのような役割を持つのか?を設定します。Viewer と Editor の2つの値があります。編集する機能があるのであれば、Editor を入力します。
●<key>LSIsAppleDefaultForType</key>
<true/>
このアプリケーションが指定したファイル拡張子/ファイルタイプについて、デフォルトアプリケーションであることを宣言します。

で、この設定パネルで“デフォルト”になっているアプリケーションがありますよね?それに、ファイルの拡張子によっては、利用できるソフトの数が多かったり、少なかったりします。あれって、だれがいつ、どこで設定しているものなのでしょう?
答えは、そのアプリケーション自身なのです。
Mac OS X 上ではアプリケーション毎に内蔵されている PropertyList (plist) と呼ばれるテキストの記述によりファイル関連付けのしくみを実現しています。
アプリケーションの中身を調べてみよう!
最初にパッケージ形式になっているアプリケーションの中身を見てみましょう。アプリケーション上で、control + クリックするとメニューが開きますので、そこから“パッケージの内容を表示”を選んで下さい。
【TextEdit のパッケージの中身】

PropertyListの構造
Info.plist の中身をTextEditで開くと、テキストの記述が見られます。Mac OS X はこの内容を参照して、TextEdit が利用可能なファイル、ファイル拡張子を認識します。では、具体的にどの部分がどのような意味を持つのでしょう?
<key>CFBundleDocumentTypes</key>
と書かれた部分以降をよく見て下さい。
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>rtf</string>
<string>RTF</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>rtf.icns</string>
<key>CFBundleTypeName</key>
<string>NSRTFPboardType</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>RTF </string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
先頭と最後で<dict> </dict> と書かれた範囲が設定内容です。各項目の説明
●<key>CFBundleTypeExtensions</key>こちらの設定には、“拡張子”を記入します。TextEdit では大文字、小文字の拡張子を並べて記入しています。このように複数の指定を書くことも可能です。指定内容は<array></array>で囲んだ範囲が適用されます。すべての拡張子を指定したい場合<array>*</array>とするようです。
●<key>CFBundleTypeIconFile</key>
その名前が示すように、ドキュメントのアイコンとなるファイルを指定します。パッケージ形式ではplistにアイコンファイル名を記入しますが、Mac OS 9世代のアプリケーションではリソースID を記入します。例えば、ICN# 256 のアイコンを適用したい場合、<array>256</array>とだけ書きます。
※ただし、icns リソース(128ドットのアイコン)に該当するIDがないと、うまく動作しないようです。
●<key>CFBundleTypeOSTypes</key>
これは、古くからのMacユーザーにもなじみの深い“ファイルタイプ”の指定になります。例えば、TextEidt では テキストファイルのファイルタイプは‘TEXT’となっています。
その他(省略可能)
●<key>CFBundleTypeRole</key><string>Viewer</string>
そのアプリケーションが書類に対してどのような役割を持つのか?を設定します。Viewer と Editor の2つの値があります。編集する機能があるのであれば、Editor を入力します。
●<key>LSIsAppleDefaultForType</key>
<true/>
このアプリケーションが指定したファイル拡張子/ファイルタイプについて、デフォルトアプリケーションであることを宣言します。
アップルの開発資料
その他にもいろいろ設定が可能なのですが、詳細についての解説が こちら にありますので、もっと勉強したい人は参考にしてください。最終更新者:木下 幹司 (更新日:2009年06月07日)




