调试 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 操作,您应该遵循以下步骤:
- 按 Alt+Cmd+R 打开 运行 配置 window;
- 展开左侧的“构建”选项卡并转到 post-actions;
- 单击window和select“新建运行脚本操作”底部的加号,并使用以下代码。
- 绝对确保“提供构建设置来自”设置为您的 QuickLook 扩展目标。
rm -Rf "~/Library/QuickLook/$FULL_PRODUCT_NAME"
cp -R "$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME" ~/Library/QuickLook
qlmanage -r
然后,您需要配置 Xcode 以启动 qlmanage
:
- 在同一个 window 中,转到“运行”选项卡,然后 select“信息”;
- 在可执行文件下拉菜单中,选择“其他...”;
- 按 Shift+Cmd+G 输入路径,输入“/usr/bin/qlmanage”,然后 select 该文件;
- 检查“调试可执行文件”(如果还没有的话);
- 移动到“参数”选项卡,添加一个“-p”参数,然后添加您认为适合您需要预览的文件的参数。
现在,当您使用 运行 操作时,您将能够通过 qlmanage
.
调试您的插件
我对 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 操作,您应该遵循以下步骤:
- 按 Alt+Cmd+R 打开 运行 配置 window;
- 展开左侧的“构建”选项卡并转到 post-actions;
- 单击window和select“新建运行脚本操作”底部的加号,并使用以下代码。
- 绝对确保“提供构建设置来自”设置为您的 QuickLook 扩展目标。
rm -Rf "~/Library/QuickLook/$FULL_PRODUCT_NAME"
cp -R "$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME" ~/Library/QuickLook
qlmanage -r
然后,您需要配置 Xcode 以启动 qlmanage
:
- 在同一个 window 中,转到“运行”选项卡,然后 select“信息”;
- 在可执行文件下拉菜单中,选择“其他...”;
- 按 Shift+Cmd+G 输入路径,输入“/usr/bin/qlmanage”,然后 select 该文件;
- 检查“调试可执行文件”(如果还没有的话);
- 移动到“参数”选项卡,添加一个“-p”参数,然后添加您认为适合您需要预览的文件的参数。
现在,当您使用 运行 操作时,您将能够通过 qlmanage
.