前提
IOS 設備指的是 iphone/iPod touch/iPad 等運行 iOS 操作系統的移動設備。
為了測試網頁在這些移動設備上的表現,我們往往需要使用真實的設備去訪問內網的開發/測試環境。在某些時候,服務器端嚴格綁定域名(不允許使用 IP 地址訪問),而且這個域名往往是虛擬的域名(比如 yoursite.dev 之類),我們就需要在移動設備上配置 hosts。
最重要的一點,你的 iOS 設備最好已經越獄了。越獄的目的不是為了安裝盜版軟件,而是為了獲取系統的最高權限,這樣才有可能修改 hosts 這樣的系統級文件。(同理,在 Android 設備上修改 hosts 文件需要獲取 root 權限。)
如果無法越獄(比如你手賤把 iOS 系統升級到了最高版本),則可參考本文末尾的后備方案。
操作步驟
首先,我們需要安裝最新版的 iTunes。因為它包含了 iOS 設備的驅動程序,裝了它,windows 才能正常識別設備。
然后,我們需要安裝“同步助手”。暫不去糾結這個軟件是不是盜版工具,它是目前最好用的 iOS 設備的資源管理器,我們這里只需要用到它的文件管理的功能。
進入文件管理界面,進入 /etc 目錄,可以找到 hosts 文件。
把它拖到桌面,就可以為所欲為了。修改完成之后,再拖回去替換原文件即可。
在修改過程中,唯一值得一提的恐怕就是換行符的格式了吧。本質上 iOS 是一個功能完備的 UNIX 系統,它的文本文件的換行符當然使用 UNIX 格式,與我們通常使用的 DOS/Windows 格式不一樣。安全起見,建議你在保存文件的時候,留意換行符的格式。(參見下圖)
后備方案
這里介紹兩種后備方案,也適用于無法修改 hosts 的其它移動設備。
真實域名法
即注冊一個真實的域名,解析到內網的開發/測試機。這實際上是一個變通的辦法,它有一些顯而易見的缺點:
- 需要花錢買域名。
- 可能需要更新服務器端的域名白名單——前端工程師往往沒有這個權限。
- 域名解析通過外網 DNS 實現,比起 hosts 本地解析要慢一些。
代理法
在本地開發機上建一個代理服務器,讓 iOS 設備通過代理服務器訪問。這樣域名解析這一步是在開發機完成的,只要把開發機的 hosts 配置好就可以了。
架設代理服務器并不復雜,有現成的方案,就是前端神器 Fiddler(只需要選中“允許其它機器連接”選項就可以了),順道還可以調試移動設備的 HTTP 連接。iOS 設備端的配置也比較簡單,這里就不贅述了。
希望本文能幫助到您!
點贊+轉發,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓-_-)
關注 {我},享受文章首發體驗!
每周重點攻克一個前端技術難點。更多精彩前端內容私信 我 回復“教程”
原文鏈接:https://github.com/cssmagic/blog/issues/28