真机、调试与常见崩溃
断点、配对信任、部署版本、签名——对照截图排障。
01看控制台
调试区没开:菜单 View → Debug Area → Activate Console,或快捷键 ⇧⌘C。在会执行到的代码里 print,⌘R 后看底部输出。
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
Text("你好,iOS")
}
.padding()
.onAppear {
print("界面出现了")
debugPrint("你好,iOS")
}
}
}
(lldb) 提示符)。02断点怎么用
在行号左侧点一下出现蓝色箭头;⌘R 跑到该行会暂停(行会高亮,右侧可能出现 Thread 1)。本图是命中断点后的样子。
代码行旁蓝箭头 = 断点;命中后 Canvas 可能显示 Canvas paused。① 调试导航器(调用栈)· ②~⑪ 调试控制条 · ⑫ 当前位置 · ⑬ 控制台 / lldb。点图可放大。
| 编号 | 区域 | 作用 |
|---|---|---|
| ① | 调试导航器 | CPU/内存 + 调用栈;点栈帧可跳到对应代码 |
| ② | 断点总开关 | 一次性启用/禁用全部断点 |
| ③ | 继续 Continue | 继续跑到下一断点(⌃⌘Y) |
| ④ | Step Over | 执行当前行,不进入函数(F6) |
| ⑤ | Step Into | 进入当前行调用的函数(F7) |
| ⑥ | Step Out | 跳出当前函数 |
| ⑦~⑪ | 视图层级 / 内存图等 | 进阶排错用,新手可先跳过 |
| ⑫ | 位置条 | 当前停在哪个线程 / 哪个闭包 |
| ⑬ | 控制台 | 看 print 输出;也可输入 lldb 命令 |
body 可能被多次调用,断点会停好几次——属正常。想少停:断点设在按钮动作或 onAppear 里你自己的逻辑上。03真机准备
数据线连 iPhone → 手机上点「信任」→ 等配对完成 → 工具栏选真机 → ⌘R。
第一次连接会弹出「要信任此电脑吗?」——点右侧 信任(可能还要输入锁屏密码)。点图可放大。
① 点工具栏设备名 · ② 真机若显示 pairing is in progress,说明还在配对,先别急着 Run。
Xcode 提示:在手机上处理信任对话框,并等到配对完成。点 OK,回到手机确认「信任」,稍等再打开设备列表。
04真机系统版本太低?
若设备列表写着 OS version lower than deployment target,或弹出「iOS 18.5 doesn’t match … iOS 26.5 deployment target」,说明工程要求的最低系统高于手机当前系统。
① 工具栏设备 · ② 真机不可用,原因是系统版本低于工程 Deployment Target。
例如:手机 iOS 18.5,工程却要求 26.5 —— 装不上。点图可放大。
① 左侧点蓝色工程名 · ② 打开 General · ③ 选中 TARGETS → HelloWorld(不要停在 PROJECT)· ④ Minimum Deployments → iOS 改成 ≤ 手机系统(如图 18.6,或 18.0 / 17.0)。点图可放大。
| 做法 | 说明 |
|---|---|
| 降低 Deployment Target | 新手首选;兼容旧手机 |
| 升级手机系统 | 若手机还能升到 ≥ 工程要求;旧机型可能升不到最新 |
| 继续用模拟器 | 真机暂时搞不定时,用 iPhone 模拟器练手 |
05签名在说什么
Apple 要确认「这个包是谁打的、能装在哪些设备」。
① 左侧点蓝色工程名 · ② 打开 Signing & Capabilities · ③ 勾选 Automatically manage signing(并选好 Team)· ④ 确认 Bundle Identifier 全局唯一。点图可放大。
Automatic Signing
勾选后 Xcode 自动创建证书与描述文件。新手保持勾选即可。
Bundle Identifier
全局唯一 ID,如 com.yourname.HelloIOS。冲突就改一个后缀。