チケット #1433 (new タスク) — at バージョン 9
Info.plist DocumentTypes見直し
報告者: | daisuke | 担当者: | daisuke |
---|---|---|---|
優先度: | 普通 | マイルストーン: | 3.8b1 |
コンポーネント: | アプリケーション | バージョン: | |
キーワード: | 関係者: |
説明 (最終更新者: daisuke) (diff)
・CFBundleTypeOSTypesは****の方が良いのでは?
https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685
むしろLSItemContentTypesにしたが良い?
<クリエータコードの有効性の現状確認>
macOS Big Sur 11.6
新規ファイル生成後、ダブルクリックでmiで開けるかどうか?
[拡張子:関連付けされていない未知の拡張子(. txtzzzzzzzzzz)の場合]
クリエータ/タイプ(MMKE/TEXT)設定あり、usroリソース設定なし:開ける
クリエータ/タイプ(MMKE/TEXT)設定なし、usroリソース設定あり:開けない
クリエータ/タイプ(MMKE/TEXT)設定なし、usroリソース設定なし:開けない
→クリエータ/タイプ(MMKE/TEXT)設定は有効、usroリソースは無効。
[拡張子:他のアプリに関連付けされている拡張子(.txt)の場合]
クリエータ/タイプ(MMKE/TEXT)設定あり、usroリソース設定ありでも、開けない(他のアプリが開く)
→おそらく下記のようなロジック。
・データとしては下記の2つ。
(1) ファイルごとのアプリ関連付け(Finder「このアプリケーションで開く」)
(2) 拡張子に対するアプリ関連付け(Finder「このアプリケーションで開く」の「すべてを変更」)
・新規ファイル生成時、(2)にしたがって(1)が設定される。(2)に、対応する拡張子がなければ、ファイルのクリエータコードにしたがって、(1)が設定される。(後でクリエータコードを変えても、(1)は更新されない。)
→モード設定の「開いたすべてのファイルにmiのクリエータ/タイプを設定する」は無意味になっているかもしれない。(ただ、タイプコードは(2)で使われている可能性がある。)
<ダブルクリックでmiで開くための方法>
モード設定「新規ファイルに下記のクリエータコードを設定する」はデフォルト(ON)の前提。
[他のアプリの拡張子とかぶっていない場合]
・miで新規生成したファイルなら、何もしなくてもダブルクリックで開ける。
・他のアプリで設定したファイルなら、Finder「このアプリケーションで開く」で(1)か(2)を設定する。
[他のアプリの拡張子とかぶっている場合(.txt等)]
・Finder「このアプリケーションで開く」で(1)か(2)を設定する。
<アイコン関連付け>
アイコン関連付けについては、上記のダブルクリックの結果と必ずしも一致しない。
(.txtでテキストエディットで開く状態なのに、miのアイコンになっていたりする。)
アイコン関連付けはmacOSのLaunchServicesのDBの反映タイミングがすぐには反映されていないふしもあるし、ドキュメントはほぼないので、よくわからない。
<CFBundleTypeExtensionsに拡張子を並べるのは意味があるのかどうか?(*だけもしくはpublic.dataだけの登録ではだめか?)>
→ある。
他のアプリで定義されていない拡張子であれば、(「新規ファイルに下記のクリエータコードを設定する」がOFFであっても)自動的に関連付けされて、ダブルクリックも有効になり、アイコンもmiのものになる。
→OS標準アプリに合わせてCFBundleDocumentTypes書き直すのもありだが、
基本的にOSドキュメントが不十分で、動作が予想できないので、とりあえず現状どおりにする。
CFBundleTypeOSTypesに関しては、拡張子*/タイプ****の項目も入っているので、ドロップや開くダイアログ等ならなんでも開ける設定にはなっているはず。
→LSItemContentTypesにpublic.dataを入れると、不明拡張子ファイルを右クリックで、「このアプリケーションで開く」の候補に出るようになる。