【问题标题】:Today Extension Breakpoints not triggered in Xcode 8.3.2Xcode 8.3.2 中未触发今日扩展断点
【发布时间】:2017-05-02 11:33:15
【问题描述】:

我尝试调试我的 Today Extension。当我在我的设备上运行 Today Extension 的方案时,我可以看到所有的 NSLog。但是到目前为止,所有断点都被忽略了。宿主应用可以正常调试。

这意味着我已经将 Today Extension 目标附加到调试器。

我已经尝试删除 DerivedData 文件夹。 我已经尝试重置我的 Xcode 默认值。

break list 返回所有设置的断点。

有什么想法吗?

【问题讨论】:

  • 只选择 Today 扩展模式并放置断点并运行应用程序,然后它将捕获调试器
  • 不,这不起作用。只是显示了日志。
  • 尝试像那样一步一步地运行应用程序后首先使用主机应用程序运行应用程序完成然后停止它们并再次选择今天扩展架构并在视图中设置断点确实加载或视图将出现并且运行应用程序,它将打开带有今天扩展的应用程序并捕获调试器
  • 不起作用。它只是打印我的日志......当有一个 NSException 时,它是唯一被触发的断点。

标签: ios objective-c debugging lldb xcode8


【解决方案1】:

当我开发今天的扩展时,我是这样调试它的:

1) 我在设备上运行我的应用程序

2) 调试 > 按 PID 或名称附加到进程 > 输入 my_process_name(见截图)

3) 点击附加,就成功了

【讨论】:

  • 不,不起作用。我用 Xcode 8.3.2 和 Xcode 8.2.1 试了一下。
  • 查找pid的进程名似乎不起作用。我所做的是使用了Today Extension的“目标名称”。我还注意到我需要在调试器找到并附加到 Today Extension 之前触摸它。
【解决方案2】:

我能够确定问题:

必须将每个源文件添加到 Today Extension Target。否则,调试器无法在我的情况下找到断点。 但这更复杂。因为我们目前的架构。但现在我确实知道 Xcode 可以正常工作。

【讨论】:

  • 如果你的扩展缺少它需要的文件,你可能无法编译它,或者如果你编译了,它会崩溃。你永远不会让调试器成为问题。如果您谈论的是扩展不需要的文件,那么就没有任何理由将它们包含在扩展目标中。
  • 我没有为这个扩展编写代码。该架构与我预期的完全不同。没有丢失的文件。它们被包装了,因此无法像往常一样调试今天的扩展。主机应用程序也不包含这些文件。所以我需要一种新的调试方法。但这与这个问题无关。
猜你喜欢
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
相关资源
最近更新 更多