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
を入力すればアクセスできる。
Android エミュレータ #
エミュレータを起動する #
- 補足参考
- コマンドラインからのエミュレータの起動 | Android Developers
- https://developer.android.com/studio/run/emulator-commandline
登録済みの 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
を入力すればアクセスできる。
参考 #
(Xamarin のドキュメントだけれどあまり関係なく参考になる)
- iOS シミュレーターと Android エミュレーターからローカル Web サービスに接続する - Xamarin | Microsoft Docs
- https://docs.microsoft.com/ja-jp/xamarin/cross-platform/deploy-test/connect-to-local-web-services
概要 #
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 要求を送信することでその操作を使用できます。