Localhost の Web アプリを iOS シミュレーター / Android エミュレーターで確認する

Localhost の Web アプリを iOS シミュレーター / Android エミュレーターで確認する

March 3, 2022

iOS シミュレータ #

シミュレータを起動する #

open -a Simulator

または

open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

シミュレータからアクセスする #

シミュレータ上で Safari を開く。

例えば localhost:5500 で起動しているサーバにアクセスしたいなら Safari の URL 入力欄に localhost:5500 を入力すればアクセスできる。

iOS Simulator

Android エミュレータ #

エミュレータを起動する #

登録済みの AVD(Android Virtual Device)を一覧表示する

~/Library/Android/sdk/emulator/emulator -list-avds

結果例

>> Pixel_3_API_30

上記の通り Pixel_3_API_30 という仮想端末が登録済みだった場合、以下のように起動コマンドを実行する。

~/Library/Android/sdk/emulator/emulator -avd Pixel_3_API_30 -netdelay none -netspeed full

エミュレータからアクセスする #

エミュレータ上で Google Chrome を開く。

例えば localhost:5500 で起動しているサーバにアクセスしたいなら Chrome の URL 入力欄に 10.0.2.2:5500 を入力すればアクセスできる。

Android Emulator

参考 #

(Xamarin のドキュメントだけれどあまり関係なく参考になる)

概要 #

  • iOS シミュレーターで実行されているアプリケーションは、ご自分のコンピューターの IP アドレス、または localhost ホスト名を使って、ローカルの HTTP Web サービスに接続できます。 たとえば、相対 URI /api/todoitems/ を使って GET 操作を公開しているローカル HTTP Web サービスがある場合、iOS シミュレーターで実行されているアプリケーションでは、http://localhost:<port>/api/todoitems/ に GET 要求を送信することでその操作を使用できます。

  • Android エミュレーターで実行されているアプリケーションでは、ホスト ループバック インターフェイスに対する別名である 10.0.2.2 アドレス (開発用マシンでは 127.0.0.1) 経由でローカル HTTP Web サービスに接続できます。 たとえば、相対 URI /api/todoitems/ を使って GET 操作を公開しているローカル HTTP Web サービスがある場合、Android エミュレーターで実行されているアプリケーションでは、http://10.0.2.2:<port>/api/todoitems/ に GET 要求を送信することでその操作を使用できます。

詳細 #

iOS

iOS シミュレーターでは、ホスト コンピューターのネットワークを使います。 そのため、シミュレーターで実行されているアプリケーションでは、コンピューターの IP アドレス、または localhost ホスト名を使って、ローカル コンピューター上で実行されている Web サービスに接続できます。 たとえば、相対 URI /api/todoitems/ を使って GET 操作を公開しているローカルのセキュリティで保護された Web サービスがある場合、iOS シミュレーターで実行されているアプリケーションでは、https://localhost:<port>/api/todoitems/ に GET 要求を送信することでその操作を使用できます。

Android

Android エミュレーターの各インスタンスは、開発用コンピューターのネットワーク インターフェイスから分離され、仮想ルーターの背後で実行されます。 そのため、エミュレートされたデバイスでは、開発用コンピューターやネットワーク上のその他のエミュレーター インスタンスを確認できません。

ただし、各エミュレーターの仮想ルーターで、事前に割り当てられたアドレスを含む特殊なネットワーク空間が管理されます。ここで、10.0.2.2 アドレスはホスト ループバック インターフェイス (開発用コンピューター上の 127.0.0.1) の別名です。 そのため、相対 URI /api/todoitems/ を使って GET 操作を公開しているローカルのセキュリティで保護された Web サービスがある場合、Android エミュレーターで実行されているアプリケーションでは、https://10.0.2.2:<port>/api/todoitems/ に GET 要求を送信することでその操作を使用できます。