回答:
恐れ入ります—シミュレータは、OSが使用しているネットワーク接続を共有します。しばらく前に、ネットワーク状態のシミュレーションに関するレーダーバグレポートを提出しました。同じことを検討するかもしれません。
シンプルなファラデー箱を使用して、外部RF信号レベルをブロックまたは制限します。
アルミホイルで自作できます。開口部は、ブロックしたい場合は、データサービスの波長より小さくする必要があります。
800 Mhzの波長は37 cm(14インチ)、1900 Mhzの波長は16 cm(6インチ)です。
これは、Macがファラデー箱の内側で作業するのが難しいため、シミュレータよりも実際のデバイスでうまく機能します;-)
はい。Xcodeでは、Xcode
メニュー項目-> Open Developer Tools
->に移動してMore Developer Tools
、「Xcodeの追加ツール」をダウンロードできます。これには、ネットワークリンクコンディショナーが含まれます。
このツールを使用すると、さまざまなネットワークシナリオ(100%損失、3G、高遅延DNSなど)をシミュレートでき、独自のカスタムシナリオを作成することもできます。
私が知っているiOSシミュレータでネットワークを無効にする唯一の方法は、Little SnitchやHands Offなどのツールを使用することです。それらを使用すると、送受信するネットワーク接続を拒否/ブロックできます。シミュレーターアプリからの接続のみをブロックするように設定できます。ファイアウォールのように機能します。
現在の日付に対する回答を更新するだけです。Xcode 4(?)以降、/Applications/Utilities
と呼ばれる設定ウィンドウがありNetwork Link Conditioner
ます。既存のプロファイルの1つを使用するか、0 Kbpsアップ/ダウンリンクで100%ドロップした独自のカスタムプロファイルを作成します。
Network Link Conditioner
Appleの公式ツールであり、そしてそれはに比べて、完全に無料ですLittle Snitch
かHands Off
。
次のようなサードパーティのアプリでインターネット接続を絞ることができます
チャールズ:http : //www.charlesproxy.com/
Macでcommand + shift + Tを押して、スロットルを設定します。
おそらくクレイジーなアイデアやパッチ:
ネットワーク到達可能性のフラグを切り替えるだけ
これは、「シミュレータメモリ警告」とその完全な安全性をトリガーすることによってフラグランタイムを切り替えるために使用する コードです。コードがデバッグモードのみであることを確認してください
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
#ifdef DEBUG
isInternetAvailable = !isInternetAvailable;
#endif
}
false
は素晴らしいアイデアです。インストールは不要です。リモートで作業を続けることができます。ありがとうございました。
isInternetAvailable
定義されていますか?!
Little Snitchを使用して、iOSシミュレーターで実行されるプロセスを含む、個々のプロセスへのネットワークトラフィックを遮断できます。そうすれば、インターネット接続を維持し、実行中のアプリを切断できます。
Xcode 8.3およびiOS 10.3の場合:
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off wifi")
XCUIDevice.shared().press(XCUIDeviceButton.home)
@available(iOS 10.3, *)
テストスイートファイルの先頭に必ず含めてください。
または、必要に応じて「機内モードをオンにする」こともできます。
Siriがwifiをオフにするか、機内モードをオンにしたら、Siriがインターネットを必要とするというSiriダイアログを閉じる必要があります。これは、ダイアログを閉じてアプリに戻るホームボタンを押すことで実行されます。
IOS Simulatorインターネットを無効にする方法は2つあります。
最も簡単な方法です
OHHTTPStubsを使用して、特定のURLへのネットワーク要求をスタブして失敗する可能性があります。
簡単な解決策は、Macの機内モードを作成することです。これを行う方法は次のとおりです。
ネットワークを再びオンにしたい場合は、[場所]ドロップダウンメニューから[自動]を選択し、[適用]をクリックします。
MacでCharles Proxyアプリを使用することをお勧めします
Bandwidth Throttle
ネットワーク接続を調整するためだけに作成された機能を使用できます
スター/ストップ
スロットル⌘ command+ T
スロットル設定... ⌘ command+ T+⇧ shift
代わりにホストのネットワークを無効にすることができます!
接続するWi-Fiネットワークが2つ以上ある場合は、iOSシミュレーターのバグを使用するのが非常に簡単です。
バグは、シミュレーターがまだ接続されていないネットワーク(IP?)を使用しようとすることです。
シミュレータを再起動するまでは、インターネットはありません(接続した最初のwifiネットワークにインターネット接続があったとしても)。そのため、プロジェクトを実行(cmd-R)および停止(cmd-。)して、接続なしでシミュレータを使用できます。 Macは接続されます。
次に、接続されたシミュレータを実行する必要がある場合は、終了して起動します。
Macでネットワークリンクコンディショナーを使用できます。アップルの開発者向けWebサイトからダウンロードできます。古いバージョンのXcodeとiOSを入手できる場所で利用できるはずです。このネットワークコンディショナーを使用すると、ネットワークの強度をwifiからネットワークなしに変更できます。
また、ネットワークコンディショナーをインストールすると、システム設定にインストールされます。