iOSシミュレータの帯域制限をテストする
iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xcode8からXcode7.xとはちょっと違うことに気がついたのでメモってみます。
実機の場合は変わってないし、楽なんですが、シミュレータの場合はiOSシミュレータに同様の設定がないので、Mac側で設定をする必要があります。
手順
ツールのダウンロード
「Additional Tools for Xcode 8」をダウンロードします。従前は「Network Link Conditioner」という名前だったんですが、これが変わってるんですね。50MB級のツール群のdmgファイルです。
ダウンロードページはXcodeのOpen Developer Tool → More Developer Tools… から飛ぶのが一番早いでしょう。Developer Centerのダウンロードページに飛びます。 検索条件に「for Xcode」が入った状態でリストが出てくるので、絞込見直すか、ブラウザの検索機能で「Additional Tools for Xcode 8」を探すといいでしょう。


帯域制限ツールのインストールと設定
DMGファイルを開くと、色々なツールがありますが、Hardwareフォルダの「Network Link Conditioner.prefPane」ファイルをダブルクリックします。このファイルはMacの「設定」に項目を追加するファイルなのでインストールの確認を求められるので、インストールします。

インストールすると、「システム環境設定」に「Network Link Conditioner」の項目が増えます。

(注:これはOS全体の通信にかかると思われるので、デバッグ中にSkypeその他のチャットワークに影響が出ると思われ、その点には注意が必要だと思います)
細かい設定方法は省きますが、設定をOnにするといろいろな通信環境(帯域の制限、パケットのロス率の設定)を行うことができます。
通常は3G(概ね700kbps)でのシミュレートすれば事足りるような気がしますが、日本の帯域制限を考えると300kbpsの帯域設定を作るほうがいいかもしれません。
実機の場合
「設定」アプリの「デベロッパ」項目に「NETWORK LINK CONDITIONER」セクションがあるので、そこのStatusをいじると同じ設定ができます。
関連記事
-
-
UIButtonのLocalizeに関するTips
Storyboardに設置したUIButtonのタイトルのLocalizeをしてたのですが、英語では
-
-
NSDictionary/NSMutableDictionaryの”valueForKey:”と”objectForKey:”の違い
表題にある通り、似ていて混同する(そして、取り違えても「たいてい」普通に動作する)NSDiction
-
-
HTMLParserを修正する
HTMLスクレイピングしてる時に役立つライブラリであるObjective-C-HMTL-Parser
-
-
UITableViewCellのロングタップ
UITableViewCellをロングタップしたときに、タップされたセルを認識しつつメニューを出した
-
-
UITableViewのヘッダに小文字を入れる
UITableViewのセクションヘッダをStoryboardでカスタマイズするという話題を以前掲載
-
-
AVAudioPlayerの初回再生遅延
ちょっとした効果音の再生にAVAudioPlayerを使っているのですが、どうも初回の効果音ロードの
-
-
UIButtonのタイトル変更時のチラつき抑制
久しぶりにXcode+Objective-Cでアプリを作っていたら、UIButtonのタイトルを動的
-
-
preferredContentSizeをUINavigationContorllerのPop時に再設定する
popoverで表示しているViewControllerのサイズを、他のViewController
-
-
UIAutomation関連覚書
割りと忘れがちなので、自分用備忘録を兼ねて、UIAutomationに関連するtips的なものをまと
- PREV
- バージョンアップ版があることを通知する
- NEXT
- Realmで==ができなかった
