2
我想告訴OSX的Finder,我的電子郵件客戶端應用程序可以打開.eml文件,迄今爲止它不太好。我從Mail.app的plist中抽出一片葉子,並將大部分UTI值直接複製,只是將UTTypeIdentifier更改爲我自己的公司。Finder沒有看到我的UTI
plist中,因爲它主張:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>LSItemContentTypes</key>
<array>
<string>com.memecode.scribe.email</string>
</array>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleTypeIconFile</key>
<string>Email.icns</string>
<key>CFBundleTypeName</key>
<string>Email Message</string>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIconFile</key>
<string>Email.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.email-message</string>
</array>
<key>UTTypeDescription</key>
<string>Email Message</string>
<key>UTTypeIdentifier</key>
<string>com.memecode.scribe.email</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>eml</string>
<key>public.mime-type</key>
<string>message/rfc822</string>
</dict>
</dict>
</array>
有什麼明顯的是我做錯了什麼?
確實,您*需要*將Mail的UTI聲明導入到您自己的Info.plist中,然後使用Mail的UTI而不是您自己的'CFBundleDocumentTypes'。我一段時間寫了一個應用程序來幫助這兩個人:http://boredzo.org/uti-plist-helper/ –
這可行,但我不知道如果主機系統上刪除Mail.app會發生什麼?似乎我要依靠Mail.app在那裏,工作正常,這讓我感到不安。我寧願完全獨立於Mail.app。 (目前我正在導入他們的UTI ......這使得我的應用出現在.eml文件的「open with」菜單中) – fret
@fret:如果Mail.app被刪除,那很好。這實際上是編寫導入聲明的關鍵。你說的是,我不擁有這個UTI,但是如果車主不在身邊,這是宣言。 – JWWalker