13

CFBundleDocumentTypes を Cocoa アプリケーションに動的に割り当てることはできますか? つまり、実行時にアプリが処理する拡張機能をさらに割り当てることができます。

現在、Info.plist で CFBundleDocumentTypes を使用して処理するアプリの拡張機能をいくつか設定していますが、アプリケーションの実行中 (実行時) にコードを使用してこれを行いたいと考えています。基本的に、Info.plist ファイルを変更せずに Launch Services に新しい拡張機能を認識させることはできますか。

ありがとう。

4

1 に答える 1

9

現時点では、実行時にLaunch Servicesにドキュメントタイプを動的に(登録解除)するアプリケーション用のパブリックAPI1はありません。

OpenEmuはこの非常に問題に直面しています。ユーザーは、Info.plistファイルがドキュメントタイプを定義するバンドルであるエミュレーターを選択的にダウンロード/インストールできます。エミュレーターをインストールする際、バンドルで定義されているタイプは、アプリケーションInfo.plistで定義されているタイプの一部である必要があります。Open Emuは、そうするためにアプリケーションInfo.plistを書き換えます—OEGameDocumentControllerの-updateInfoPlistを参照してください。

バンドルInfo.plistを上書きすることは、MacAppStoreのポリシーに違反することに注意してください。

ドキュメントタイプの実行時(非)登録を要求するレーダーを提出しました。別のものも提出することをお勧めします。これは、 #2526726の複製として閉じる必要があります。重複している場合でも、Appleがこの機能を必要とする人の数を見積もることができるように、とにかくそれを提出することが重要です。

1ただし、SPIを介して可能である可能性があります。これを調べていたとき、LaunchServicesに出くわしまし_LSRegisterItemFromItemInfo()た。

于 2011-12-22T09:22:06.567 に答える