Xcode 技巧:调试被动运行的程序

791 阅读1分钟

常规的开发调试是在 Xcode 中直接运行程序然后通过断点进行调试,这通常可以满足大部分的情况。

但是对于只能以被动方式拉起运行的场景,上面的方式就无法使用了。

比如以下场景:

  1. 调试在 App 未启动的情况下,点击系统通知拉起 App 的流程。
  2. 调试在 App 未启动的情况下,接受来自第三方 App 的文件分享的流程(比如来自系统的 AirDrop)。
  3. 调试网络扩展(NetworkExtension)的运行流程。

App 是被系统拉起运行的,不能在 Xcode 里先运行起来再调试,这个时候需要使用以下步骤来调试被动执行的程序,而且对 iOS 和 macOS 都适用。

先在 Xcode 中要调试的位置下好断点:

然后设置要调试的程序名称,如果是扩展类型就是输入扩展的名称:

设置好名称后状态就变成 Waiting to attach to XXX:

所有设置完成。

这个时候就可以开始调试了,当程序被动启动而且执行到下了断点的位置,就会自动暂停到 Xcode 里。

掌握了这个技巧以后,可以解决开发中大部分的疑难问题。

(完)