Markdown ファイルを保存しようとするアプリがあります。これは、私の Info.plist の関連部分です。
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>md</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icon.icns</string>
<key>CFBundleTypeName</key>
<string>Markdown document</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>net.daringfireball.markdown</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>NSDocumentClass</key>
<string>MyDocument</string>
<key>NSExportableAs</key>
<array>
<string>Microsoft Word Document</string>
<string>RTF</string>
<string>HTML</string>
</array>
<key>NSExportableTypes</key>
<array>
<string>net.daringfireball.markdown</string>
<string>com.microsoft.word.doc</string>
<string>public.rtf</string>
<string>public.html</string>
</array>
</dict>
ご覧のとおり、doc、html、および rtf にエクスポートできるアプリも必要です。
UTExportedTypeDeclarations は次のとおりです。
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.source</string>
</array>
<key>UTTypeDescription</key>
<string>Markdown document</string>
<key>UTTypeIdentifier</key>
<string>net.daringfireball.markdown</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>md</string>
</array>
</dict>
</dict>
ドキュメントをアプリに保存mdls
し、ファイルを実行すると、次のようになります。
kMDItemContentType = "dyn.ah62d4rv4ge8043a"
kMDItemContentTypeTree = (
"dyn.ah62d4rv4ge8043a",
"public.data",
"public.item"
)
さらに、私のアプリは以前に保存したファイルを開くことができないようで、エラーが発生します:
エラー Domain=NSCocoaErrorDomain Code=256 「自動保存されたドキュメント「test10.md」を再度開くことができませんでした。」 UserInfo=0x102210bf0 {NSLocalizedDescription=自動保存されたドキュメント「test10.md」を再度開くことができませんでした。}
私は何を間違っていますか?UTI を適切に認識させるにはどうすればよいですか?