【问题标题】:Debugging Quicklook Plugin in Xcode在 Xcode 4.6 中调试 Quicklook 插件
【发布时间】:2013-05-24 13:48:18
【问题描述】:

我正在尝试在 Xcode 4.6 中调试 quicklook 插件。我已经在 Edit Scheme 中创建了可执行文件。

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

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

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

【问题讨论】:

    标签: objective-c macos xcode4.6 quicklook


    【解决方案1】:

    我写过 this blog post 描述如何调试 Quick Look 插件,这些插件应该从 Xcode 8.2 / macOS 10.12 开始工作。

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      1. 编辑您的方案。

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

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

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

      5. 输入 /usr/bin/ 并点击“开始”按钮。标准文件表现在应该显示/usr/bin 的内容。

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

      7. 打开“调试可执行文件”复选框并点击选择按钮。

      配置 Xcode 传递给 qlmanage 的参数

      1. 在“编辑方案”表的“运行”部分中选择“参数”选项卡。

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

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

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

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

      6. 关闭方案表。

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

      【讨论】:

      • 非常感谢。
      • 谢谢。我一直在拔头发,试图让它发挥作用,直到我找到它!
      • 遗憾的是,这似乎不适用于 El Capitan。 Xcode 终止并显示以下消息:Message from debugger: cannot attach to process due to System Integrity Protection
      • 为避免cannot attach to process due to System Integrity Protection消息,您应该取消选中插件方案中的“调试可执行文件”按钮(您放置qlmanage的位置)。
      • public.data 到底是什么?
      【解决方案3】:

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

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

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

      【讨论】:

      • 非常感谢迈克尔。
      • 您不需要将qlmanage复制到您的项目目录,只需在文件浏览器中使用SHIFT + CMD + G,然后将其指向\usr\bin,您就可以在那里选择可执行文件。
      • 这确实应该取代苹果提供的令人痛苦的过时文档。能够在此之后的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 2013-09-10
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多