がべーじこれくしょん

技術系とかいろいろ

iOS Simulator上でネットワークの帯域制限を行う方法

執筆・創作活動への支援をぜひお願いします🙏
Buy Me A Coffee

TL;DR

  • 通信状況の悪い状態を再現する方法
  • 通信制限のお気持ちがわかる

ツールのインストール

今回使用するのは、Appleが提供するNetwork Link Conditionerというツールです。

この開発者用ツールは、最初からXcodeに入っているわけではありませんので、Appleの開発者サイトからダウンロードしてくる必要があります。

Xcode8以前とXcode9以降で手順が異なりますので、お使いの環境のものを参照してください。

Xcode9以上を使っている方

Additional Tools for Xcodeという開発者用ツール群の中に含まれているので、まずはこれをインストールします。

まずは、以下のサイトにアクセスし、Additional Tools for Xcodeと検索して、使っているXcodeのバージョンに合うものをダウンロードしてください。

https://developer.apple.com/download/more/

スクリーンショット 2018-08-06 16.29.36.png

ダウンロードが完了したら、ダウンロードされたdmgファイルを開き、Hardware->Network Link Conditioner.prefPaneをクリックして実行してください。macOSの環境設定パネルにNetwork Link Conditionerが追加されていれば、インストール完了です。

スクリーンショット 2018-08-06 16.37.13.png

Xcode8以前を使っている方

Xcode8以前の場合、Network Link Conditionerは、Hardware IO Toolsという開発者用ツール群の中に含まれています。

まずは、以下のサイトにアクセスし、Hardware IO Toolsと検索して、使っているXcodeのバージョンに合うものをダウンロードしてください。

https://developer.apple.com/download/more/

スクリーンショット 2018-08-06 16.34.41.png

ダウンロードが完了したら、ダウンロードされたdmgファイルを開き、Network Link Conditioner.prefPaneをクリックして実行してください。macOSの環境設定パネルにNetwork Link Conditionerが追加されていれば、インストール完了です。

スクリーンショット 2018-08-06 16.38.45.png

使い方

まず、環境設定パネルに追加されたNetwork Link Conditionerを開きます。

スクリーンショット 2018-08-06 16.39.46.png

Profileで任意のプロファイルを指定し、左にあるON/OFFスイッチをクリックすれば設定が有効になります。

いろいろ項目がありますが、ざっと以下のような感じです。

項目名 内容
Profile プロファイルを指定します
DNS Delay 名前解決の際の遅延時間
Downlink 下り(ダウンロード)に関する設定
Uplink 上り(アップロード)に関する設定
Bandwidth 帯域幅
Packets Dropped パケット損失率
Delay 遅延時間

プロファイルについては、以下のものがデフォルトで用意されているので、よほどのことがない限りは自分でプロファイルを設定する必要はありません。

  • 100% Loss
  • 3G
  • DSL
  • Edge
  • High Latency DNS
  • Very Bad Network
  • Wifi

独自にプロファイルを定義したい場合は、右下のManage Profilesをクリックします。

参考サイト

https://dev.classmethod.jp/smartphone/iphone/network-link-conditioner/