iOS開發模擬網路狀態差進行除錯
在開發iOS的過程當中,我們經常需要模擬不同的網路環境,來對程式進行測試。以下是分別對模擬器和真機狀態下的兩種不同的方法,親測有效。
1.模擬器情況下
模擬器方面,蘋果給我們提供了一個很實用的工具,Network Link Conditioner可以模擬各種不同狀況下的網路環境,方便我們進行測試。
安裝
Network Link Conditioner位於”Hardware IO Tools for Xcode”工具包中,這個包可以在Apple Developer Downloads下載得到,然後搜尋Hardware IO
Tools for Xcode,選擇一個符合自己版本的下載。(具體的點選看某個Hardware IO Tools for Xcode看詳情介紹)一般是最新的即可。
下載完成後,開啟DMG檔案,然後雙擊”Network Link Condition.prefPane”進行安裝。
安裝完成後,我們就可以在系統設定面板中的最下面找到它。
開啟Network Link Conditioner的控制面板,我們就可以改變iPhone模擬器的網路環境,它提供了很多不同的網路狀態,包括:
- EDGE(2G)
- 3G
- DSL(電話線上網)
- WiFi
- High Latency DNS(高延遲)
- Very Bad Network(網路狀況不穩定)
- 100% Loss(全丟包)
每一個狀態都可以對頻寬、延時和丟包率進行設定(如果任一項的值被設定為零,則那一項的值就與本機電腦的網路狀態一致)。除了預設提供的配置,我們也可以建立自己的網路狀態,以滿足特殊的需求。可以點選Manage profiles
2.真機情況下
其實Apple在iOS系統中預置了網路除錯工具,但是隻有新增過測試裝置,並使用XCode連線下裝置才能啟用.
這時只要去設定中就可以看到多出來一項:開發者
點選開發者進去,然後看到中間的那行NETWORK LINK CONDITIONER
其中Status是表示網路限制是否開啟,點選進去就可看到詳細設定
PS:這項開啟後影響的是整個系統,所以除錯完畢後不要忘記關掉,免得奇怪網路狀態咋不正常了。。。