Debug iOS app in Visual Studio Code
使用 LLDB 远程调试程序
调试分为本地调试和远程调试,iOS app 不管安装在模拟器还是真机,均属于远程调试。
这里简述一下大概的原理。
远程启动 lldb-server ,或者叫 debugserver, 比如使用 ios-deploy 工具开启真机的 debugserver 并将远程端口的 socket 数据转发(或者叫代理)到本机:
1 | ios-deploy --id <device_id> --nolldb --json |
输出如下:
1 | { |
DebugServerLaunched
代表真机上的 debugserver 已启动成功,本地转发端口为 61115
ps. <device_id>
是你的真机的id,用命令 ios-deploy --detect
可找到真机的id。
本地启动 lldb,先通过 platform select
对应平台(用于加载系统库和符号),之后通过process connect connect://127.0.0.1:<Port>
,通过本地转发的 socket 连接到远端 debugserver 。
之后通过 lldb 设定目标执行文件及其依赖的模块,及其远端文件路径映射,即可实现远程调试
命令行启动lldb
,并输入如下:
1 | (lldb) platform select remote-ios |
这时候你可能会发现报错了: error: No such file or directory (myapp.app)
。
因为,对于iOS app 你需要先通过ios-deploy
安装到真机上之后,才能走通这个流程:
1 | # 安装app |