跳到主要内容
本页目录

运行与调试

断点、变量、控制台,附加到运行中的 App,自定义启动参数,真机第一次调试慢怎么办。

在 VS Code 里调试 iOS 应用,iPhone 真机和模拟器都可以。选好运行设备、设好断点,按 Cmd+R 或 F5 即可,不需要任何配置。

断点命中时的调试视图

调试期间

  • Swift、Objective-C、C、C++ 都能下断点;条件断点和日志断点(不停下、只输出一行)也可以用。
  • 变量、监视、调用栈、线程都在 VS Code 标准的调试视图里。
  • 调试控制台可以输入 lldb 命令,例如 po self、bt。
  • App 的 print / NSLog 输出在「输出 › kxapp Console」。
  • 停止调试时会结束 App,和 Xcode 一致;想让 App 留在设备上继续运行,关掉设置 kxapp.debug.killAppOnStop。

构建发生在调试会话开始之前,调试工具栏上的「重启」不会重新编译。改了代码后按 Cmd+R 重新构建并运行。

附加到运行中的 App

在命令面板运行「附加到运行中的 App…」,从列表里选设备上正在运行的 App(显示名称、pid 和 bundle id)。断开后 App 继续运行。

launch.json

想固定 Scheme、设备或给 App 传启动参数时,在 .vscode/launch.json 里加配置,调试器类型写 kxapp:

{ "version": "0.2.0", "configurations": [ { "type": "kxapp", "request": "launch", "name": "kxapp: Build & Run", "build": true }, { "type": "kxapp", "request": "launch", "name": "kxapp: Run", "build": false }, { "type": "kxapp", "request": "attach", "name": "kxapp: Attach" } ] }
字段说明
scheme要构建运行的 Scheme,默认是当前选中的
configuration构建配置,默认是当前选中的
device模拟器或设备的 UDID 或名称,默认是当前运行目标
build运行前是否先构建,默认 true
args传给 App 的启动参数
envApp 的环境变量
pid(attach)要附加的进程 ID,不写时从运行中的 App 里选

真机第一次调试很慢

手机升级系统后第一次调试,需要先让 Xcode 准备这台设备,否则启动会很慢。遇到这种情况插件会弹出提示:打开 Xcode 的「Window › Devices and Simulators」连一次这台设备,等 Xcode 准备完成后再调试,之后十几秒就能停到断点。

其它启动失败的情况(设备锁屏、签名不对等)插件会提示具体原因,见问题排查。

接下来