运行与调试
断点、变量、控制台,附加到运行中的 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 的启动参数 |
| env | App 的环境变量 |
| pid | (attach)要附加的进程 ID,不写时从运行中的 App 里选 |
真机第一次调试很慢
手机升级系统后第一次调试,需要先让 Xcode 准备这台设备,否则启动会很慢。遇到这种情况插件会弹出提示:打开 Xcode 的「Window › Devices and Simulators」连一次这台设备,等 Xcode 准备完成后再调试,之后十几秒就能停到断点。
其它启动失败的情况(设备锁屏、签名不对等)插件会提示具体原因,见问题排查。