本文由 IMWeb 團隊成員 青楊 首發於 IMWeb 社區網站 imweb.io。點擊閱讀原文查看 IMWeb 社區更多精彩文章。web
前段時間,老闆說:iPhone 又出了那麼多新機型,你搞下兼容吧。我:測試機呢?老闆說:沒有。我:???
這讓我十分爲難,畢竟巧婦難爲無米之炊,因而我只好使出絕招:模擬器大法!xcode
首先須要安裝 Xcode,安裝完畢後,在終端中運行 xcode-select--install
安裝 Command-line-tools。網絡
安裝完畢後搜索 Simulator
,或者按 Command+Shift+G
, 輸入 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
,即可運行模擬器。app
你也能夠使用命令行來管理和啓動模擬器:ide
運行 xcrun instruments-s
列出可用的 iOS 模擬器:測試
運行 xcrun instruments-w XXX
啓動模擬器 網站
Simulator 默認只有最新的 iOS 版本的模擬器,若是你須要在老版本的 iOS 上調試,能夠這樣安裝更多版本。ui
首先進入設備管理:
spa
點擊左下角的加號,選擇 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,在首選項中啓用開發菜單
模擬器訪問須要調試的頁面,在開發菜單中找到咱們的頁面:
就能夠愉快的玩耍了!
除了直接調試 Safari 中的頁面,咱們還能夠藉助模擬器調試 APP 中的 Web 頁面。能夠在 APP 中直接打斷點、走單步調試等等,今後跟 eruda 等手動打 log 的調試器說拜拜~
首先咱們須要客戶端同窗給模擬器打一個 .app
包,把包拖到模擬器安裝。而後啓動 APP,訪問要調試的 Web 頁面,如法炮製,如圖,就能夠愉快的玩耍了~
PS: 打給 iPhone 的 .app
包不能直接給模擬器使用(會閃退),由於模擬器是運行在 X86 指令集上的,須要專門打包。