本文由 IMWeb 团队成员 青杨 首发于 IMWeb 社区网站 imweb.io。点击阅读原文查看 IMWeb 社区更多精彩文章。
前段时间,老板说:iPhone 又出了那么多新机型,你搞下兼容吧。我:测试机呢?老板说:没有。我:???
这让我十分为难,毕竟巧妇难为无米之炊,于是我只好使出绝招:模拟器大法!
一. 安装 & 启动
首先需要安装 Xcode,安装完毕后,在终端中运行 xcode-select--install
安装 Command-line-tools。
安装完毕后搜索 Simulator
,或者按 Command Shift G
, 输入 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
,便可运行模拟器。
你也可以使用命令行来管理和启动模拟器:
- 运行
xcrun instruments-s
列出可用的 iOS 模拟器: - 运行
xcrun instruments-w XXX
启动模拟器
Simulator 默认只有最新的 iOS 版本的模拟器,如果你需要在老版本的 iOS 上调试,可以这样安装更多版本。
- 首先进入设备管理:
- 点击左下角的加号,选择
Downloadmore simulator runtime
:
二. 配置代理
我们在调试的时候,需要把模拟器的网络请求代理到我们的 dev-server。这里大力推荐使用强大的 Whistle
配合 Proxifier
来实现。
首先安装 Whitle,运行 w2 start
,访问 http://127.0.0.1:8899
,配置好 dev-server 的代理。
然后运行 Proxifier,把模拟器请求转发的 Whistle。 首先添加一条 Action 规则代理到本地 8899
端口:
然后新建一个规则,把 Simulator;"Xcode Server Builder”; "MobileSafari”;“com.apple.WebKit.Networking”;
添加到 Applications:
这时,在模拟器中访问我们要调试的页面,检查一下 Whistle,请求都走到本地,代理配置成功!
PS:第一次使用 Whistle 代理时需要安装并信任证书,具体参考 Whistle 文档。
三. 开始调试
- 首先在模拟器中启动 Safari,打开调试的页面
- 然后在 Mac 上启动 Safari,在首选项中启用开发菜单
- 模拟器访问需要调试的页面,在开发菜单中找到我们的页面:
- 就可以愉快的玩耍了!
四. WebView 调试
除了直接调试 Safari 中的页面,我们还可以借助模拟器调试 APP 中的 Web 页面。可以在 APP 中直接打断点、走单步调试等等,从此跟 eruda 等手动打 log 的调试器说拜拜~
首先我们需要客户端同学给模拟器打一个 .app
包,把包拖到模拟器安装。然后启动 APP,访问要调试的 Web 页面,如法炮制,如图,就可以愉快的玩耍了~
PS: 打给 iPhone 的 .app
包不能直接给模拟器使用(会闪退),因为模拟器是运行在 X86 指令集上的,需要专门打包。
关注我们
IMWeb 团队隶属腾讯公司,是国内最专业的前端团队之一。
我们专注前端领域多年,负责过 QQ 资料、QQ 注册、QQ 群等亿级业务。目前聚焦于在线教育领域,精心打磨 腾讯课堂 及 企鹅辅导 两大产品。
社区官网:
http://imweb.io/
加入我们:
https://hr.tencent.com/position_detail.php?id=26701
扫码关注 IMWeb前端社区 公众号,获取最新前端好文
微博、掘金、Github、知乎可搜索 IMWeb 或 IMWeb团队 关注我们。