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