Quicklook 插件在应用程序包中时不起作用

Quicklook plugin doesn't work when in app bundle

我已经编写了一个快速查看插件来预览我的自定义文件类型,但是当嵌入到我的 OS X 应用程序包中时它不起作用。 运行 "qlmanage -m plugins" 没有显示我的 UTI

手动将 qlgenerator 文件从 myApp.app/Contents/Library/QuickLook/ 复制到 /Library/QuickLook/ 和 运行 "qlmanage -r" 使 quicklook 预览工作。

您是否必须在托管应用程序中做一些特殊的事情才能使用 OS X 注册嵌入式快速查看插件?

额外说明:(我不知道为什么这些会很重要,因为当我手动复制它时 qlGenerator 可以工作,但也许这些信息会有所帮助)

在构建期间,我收到有关 qlGenerator 的警告: "warning: skipping copy phase strip, binary is code signed"

复制构建阶段的设置如下:

我成功了,但没有直接的解决方案。我做了几件事:

  1. 我没有为我的应用程序正确设置导出的 UTI。我查看了其他一些应用程序的 plist,看看他们是如何解决这个问题的。

  2. 我的系统中到处都是我的应用程序副本。他们都提到了相同的 UTI,所以这些可能会混淆快速浏览。我都删了

  3. 我在快速查看目标上禁用了代码签名。这修复了我收到的警告。 ql 插件获取由它捆绑到的应用程序签名的代码。

  4. 我将我的应用程序发送到其他计算机的 /Applications/ 文件夹并在那里进行了测试。看起来 quick look daemon 不会清除应用程序嵌入的 quick look 插件的缓存。我可能有点迷失了它,但似乎将应用程序拖到 /Applications/ 并从那里启动它会启动 quick look 守护进程可能有一些特别之处。

这些事情的某种组合导致它开始工作。 (Un)快乐编码:(