如何为OSX注册自定义非文档UTI /文件类型以识别它?

one*_*sec 8 macos uti osx-mountain-lion

我已经阅读了关于这个问题的所有门票,但我仍然没有把它弄好.我有一个非文档OSX应用程序(适用于OSX Lion和MountainLion).我希望此应用程序导出和导入与自定义文件扩展名".iobs"相关联的自定义数据.在内部,这些文件只是使用[NSKeyedArchiver archivedDataWithRootObject:]存档的数据,并使用"iobs"扩展名保存到磁盘上.

所以,我的清单是这样的:

1)出口机制:检查.我的应用程序正确创建.iobs文件.如果我在终端中运行"file <filename.iobs>",我会得到"iObserve_exportedItems.iobs:Apple二进制属性列表"

2)检查导出的UTI的声明.如下图所示.我没有声明自定义文档类型,因为我从来没有在我的应用程序中使用NSDocument,没有任何意义.无论如何,我已经尝试过但失败了.我也试过了"Conforms To"条目的不同组合,但没有成功.

Xcode4的快照导出了自定义UTI声明

3)有没有第三点??? 我是否需要启动应用程序以让系统知道?我到目前为止只是在Xcode的Debug中运行它,这没有任何效果.所以我猜我的Info.plist是错误的,但我从Xcode4界面填充它,所以???

感谢您的任何帮助,提示,问题,建议.

one*_*sec 16

好吧,显然,即使我没有指定文档类,我也必须声明文档类型.请参阅附带的屏幕截图 请注意,仅保留Document UTI不起作用.我确实需要这两个(导出的UTI和文档类型).另请注意,如果我说它符合com.apple.binary-property-list,我没有正确的图标.

对于那些想知道的人来说,除了启动应用程序之外,没有什么可以"注册"一个类型(及其后续更改).

在此输入图像描述

  • +1感谢您通过屏幕截图指出这一点.这是关于如何为您的应用程序注册文件类型的非常完整的问答. (3认同)
  • +1谢谢!我无法相信找到这些信息有多难. (3认同)