本篇目标
掌握 iOS 模拟器的详细使用方法,完成真机调试配置,学会基本的调试技巧,能独立排查常见的运行时问题。
一、模拟器基础

iOS 模拟器是 Xcode 自带的工具,可以在 Mac 上模拟 iPhone、iPad 等设备的运行环境。
模拟器的优势:
不需要真机,节省成本
启动速度快,调试方便
支持多种设备和系统版本
可以截图、录屏、模拟位置
模拟器的局限:
无法测试真实性能(如 CPU、内存、GPU)
无法测试相机、传感器、蓝牙等硬件
无法完全模拟真实网络环境
部分系统 API 在模拟器上不可用
二、模拟器常用操作

启动模拟器:
Xcode 菜单栏 → Open Developer Tool → Device Hub(旧版为 Simulator)
或运行项目时自动启动
快捷键
Command + Shift + 2打开模拟器列表
管理模拟器设备:
Xcode 菜单栏 → Open Developer Tool → Device Hub,或快捷键 ⇧⌘2(Xcode 26 及更早为 Window → Devices and Simulators)
选择 Simulators 标签
可查看、添加、删除模拟器
添加新模拟器:
点击左下角 + 号(Xcode 27.0 点击 DeviceHub 左上角 + 号)
选择 Device Type(如 iPhone 15 Pro)
选择 iOS 版本(如 iOS 17.0)
命名模拟器
点击 Create
模拟器常用快捷键:
操作 | 快捷键 |
|---|---|
回到主屏幕 | Command + Shift + H |
切换应用 | Command + Shift + H 两次 |
截图 | Command + S |
录屏 | 菜单 File → Record Screen |
旋转设备 | Command + 左/右箭头 |
锁定屏幕 | Command + L |
模拟内存警告 | 菜单 Debug → Simulate Memory Warning |
模拟位置 | 菜单 Features → Location |
模拟器文件操作:
拖拽文件到模拟器窗口可导入
截图默认保存在桌面
录屏文件可导出为视频
三、真机调试配置

模拟器无法完全替代真机,以下情况必须用真机测试:
性能测试(流畅度、内存、电量)
硬件相关功能(相机、传感器、蓝牙)
推送通知
内购与支付
上架前最终测试
真机调试步骤:
准备 Apple ID
- 免费 Apple ID 即可用于本地调试 - 上架需要加入 Apple Developer Program
连接设备
- 用数据线连接 iPhone 和 Mac - 手机上点击“信任此电脑”
配置签名
- 打开 Xcode 项目 - 选择项目 → Signing & Capabilities - 勾选 Automatically manage signing - Team 选择自己的 Apple ID - Bundle Identifier 确保唯一
选择设备
- Xcode 顶部工具栏选择已连接的 iPhone - 点击运行按钮
信任开发者证书
- 手机上:设置 → 通用 → VPN与设备管理 - 找到开发者证书,点击信任
运行
- 再次点击运行,App 安装到手机
常见真机调试问题:
问题 | 原因 | 解决 |
|---|---|---|
设备不可用 | 未信任电脑 | 手机上点击信任 |
签名失败 | Bundle ID 冲突 | 修改为唯一 ID |
无法安装 | 证书未信任 | 设置中信任开发者 |
运行闪退 | 架构不匹配 | 检查 Build Settings |
设备未识别 | 数据线问题 | 更换数据线或接口 |
四、调试基础

断点调试:
在代码行号左侧点击,添加断点(蓝色箭头)
运行项目,程序会在断点处暂停
查看变量值、调用栈
使用调试区按钮继续、单步、跳过
调试区按钮:
按钮 | 功能 |
|---|---|
Continue | 继续运行 |
Step Over | 单步跳过 |
Step Into | 单步进入 |
Step Out | 跳出当前函数 |
View Memory | 查看内存 |
控制台输出:
print("调试信息")
debugPrint("详细信息")查看日志:
Xcode 底部调试区显示 print 输出
可过滤、搜索日志
使用
os_log输出结构化日志
常见调试技巧:
条件断点:右键断点 → Edit Breakpoint → 添加条件
异常断点:Breakpoint Navigator → + → Exception Breakpoint
符号断点:监控特定方法调用
LLDB 命令:在控制台输入
po 变量名查看值
五、常见运行时问题排查
App 启动闪退:
查看控制台错误信息
检查 Info.plist 配置
检查权限描述是否缺失
使用 Exception Breakpoint 定位崩溃点
界面显示异常:
使用 View Debugger(调试栏 → Debug View Hierarchy)
查看视图层级和约束
检查是否在主线程更新 UI
内存问题:
使用 Memory Graph(调试栏 → Debug Memory Graph)
查看对象引用关系
检查循环引用
网络请求失败:
检查 ATS 配置(Info.plist)
检查 URL 是否正确
使用 Charles 或 Proxyman 抓包
六、避坑指南
模拟器不能替代真机:上架前必须真机测试。
免费账号限制:免费 Apple ID 签名的 App 7 天后失效,需重新安装。
设备信任问题:换电脑或重装系统后需重新信任。
Bundle ID 不要随意改:上架后修改会导致无法更新。
调试完记得删断点:否则每次运行都会暂停。
真机调试时保持手机解锁:否则可能无法安装。
七、检查清单
[ ] 能独立启动和管理模拟器
[ ] 掌握模拟器常用快捷键
[ ] 能连接真机并完成签名配置
[ ] 能在真机上运行 App
[ ] 会使用断点调试
[ ] 会查看控制台日志
[ ] 能使用 View Debugger 排查界面问题
[ ] 了解常见运行时问题的排查方法