调试 Quick Look 插件

Debugging a Quick Look plugin

我对 OSX 开发还很陌生。我目前正在编写一个应用程序,它有自己的(跨平台)基于 XML 的自定义文件类型。

我想写一个快速查看插件,以便在 finder 中看起来不错,并且找到了关于它应该如何工作的教程,但显然我一定是做错了什么,因为我在 /var/log/system.log 当我的 Quick Look 插件是 运行 时出现段错误。我想看看它崩溃的地方,但我一辈子都不知道该怎么做。

OSX 在哪里存储核心转储(如果有的话)?我是否需要设置一些系统选项或其他东西来启用它?

如何Xcode查看这些核心转储?

我迷路了。

我没有亲自尝试过,但是这个页面:

Debugging Quicklook Plugin in Xcode 4.6

在 Xcode 4 - 6 中描述了如何调试您的插件。这可能比事后尝试通过核心文件进行 grub 更有用。

EDIT SIP 阻止您调试受保护的进程。因此,目前(至少自从通过 Mojave 引入 SIP 以来)无法在不关闭 SIP 的情况下调试 QuickLook 插件,至少部分如此。


您可能已经发现,由于您的 QuickLook 插件是一个插件而不是独立的可执行文件,因此您需要调试承载该插件的进程。为此,您可以将自己连接到 qlmanage 可执行文件。

第一步是让您的 .qlgenerator 插件可用于 Quick Look 服务器。为此,您需要将其复制到 ~/Library/QuickLook 和 运行 qlmanage -r。第一个可以作为 post-build 操作实现,第二个必须在调试选项中指定。

对于 post-build 操作,您应该遵循以下步骤:

  1. 按 Alt+Cmd+R 打开 运行 配置 window;
  2. 展开左侧的“构建”选项卡并转到 post-actions;
  3. 单击window和select“新建运行脚本操作”底部的加号,并使用以下代码。
  4. 绝对确保“提供构建设置来自”设置为您的 QuickLook 扩展目标。
rm -Rf "~/Library/QuickLook/$FULL_PRODUCT_NAME"
cp -R "$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME" ~/Library/QuickLook
qlmanage -r

然后,您需要配置 Xcode 以启动 qlmanage:

  1. 在同一个 window 中,转到“运行”选项卡,然后 select“信息”;
  2. 在可执行文件下拉菜单中,选择“其他...”;
  3. 按 Shift+Cmd+G 输入路径,输入“/usr/bin/qlmanage”,然后 select 该文件;
  4. 检查“调试可执行文件”(如果还没有的话);
  5. 移动到“参数”选项卡,添加一个“-p”参数,然后添加您认为适合您需要预览的文件的参数。

现在,当您使用 运行 操作时,您将能够通过 qlmanage.

调试您的插件