5

我正在尝试在 Xcode 4.6 中调试一个 quicklook 插件。我在编辑方案中创建了可执行文件。

现在,当我构建项目时,插件未安装到“/Library/Quicklook”路径。相反,我在任何地方都没有找到它。

我想在调试模式下运行插件并想打断点,以便我可以找出插件在不同文件上崩溃的位置。

如果有人分享他的知识,那就太好了。提前致谢。

4

3 回答 3

10

您可以使用刹车点和NSLog函数来调试 QL 插件。但首先你需要配置环境。

  • 在 Project Navigator 上选择您的项目
  • 然后选择 QL 插件目标
  • 转到“构建阶段”选项卡并添加新阶段“复制文件
  • 在目标下拉菜单中选择“绝对路径~/Library/QuickLook”并设置为子路径
  • 打开终端并qlmanage使用命令复制到项目的根目录cp /usr/bin/qlmanage PROJECT_ROOT_DIR
  • 然后选择菜单产品 -> 方案 -> 编辑方案...
  • 在方案列表中选择“运行”
  • 在信息选项卡上选择可执行文件下拉菜单,然后选择“其他... ”并选择qlmanage您已复制到项目根目录的二进制文件
  • 在参数选项卡上为“启动时传递的参数”添加行并将值设置为-p FULL_PATH_TO_FILE_FOR_PREVIEW

完成所有步骤后,您可以运行项目并调试代码。

于 2013-07-23T10:04:43.350 回答
10

Xcode 6 一定有所不同,因为上面的说明对我不起作用。但这是我今天困惑的一个解决方案,并且有效。希望它会帮助别人。

(假设您的插件名称是myplugin.qlgenerator

首先,如果您尝试了上述早期解决方案,请撤消它们。

  1. 删除将二进制文件复制到的复制阶段,~/Library/Quicklook并删除qlmanage您可能已复制到项目根目录的副本。

将可执行文件设置为/usr/bin/qlmanage. “qlmanage”是加载和运行插件的程序。

  1. 编辑您的方案。

  2. 从左侧列表中选择“运行”,然后选择右侧显示的信息选项卡。

  3. 从可执行文件弹出窗口中选择“其他...”。将出现一个标准文件表。

  4. 键入 cmd-shift-g。将出现一个带有文本字段的“转到文件夹”表。

  5. 输入/usr/bin/并点击 Go 按钮。标准文件表现在应该显示/usr/bin.

  6. 选择“qlmanage”二进制文件

  7. 打开“调试可执行文件”复选框,然后单击“选择”按钮。

配置参数 Xcode 传递给 qlmanage

  1. 在 Edit Schemes 表的 Run 部分中选择 Arguments 选项卡。

  2. 删除之前尝试可能遗留的任何参数。

  3. 添加-c public.data作为要在启动时传递的第一个参数。您可能需要根据插件支持的 UTI 类型更改此设置。

  4. 添加-g $(BUILD_DIR)/Debug/myplugin.qlgenerator为第二个参数。这将解析为插件调试版本的路径。

  5. 添加-p '/fullpath/to/file/to/be/quicklooked为第三个参数。这是一个应该已经存在的文件的路径。您的插件将被要求呈现此文件的预览。

  6. 关闭方案表。

就是这样。您现在应该能够调试您的插件,包括设置(和命中)断点!

于 2014-12-22T23:45:23.397 回答
1

我写了这篇博文,描述了如何调试 Quick Look 插件,这些插件应该从 Xcode 8.2 / macOS 10.12 开始工作。

给予应有的信任,这基本上是mlist0987在此处给出的步骤,但还有一个额外的步骤来绕过 10.11 中引入的系统完整性保护。

TLDR:您必须获取qlmanage由链接引用的 版本的副本/usr/bin(即不要只是复制别名)并将其设置为调试可执行文件。

于 2017-03-13T10:41:53.143 回答