iPhoneシミュレータからホストマシン自体にアクセスする方法


99

ほとんどの操作でWebサービスに接続するアプリを開発しています。ショートカットとして、自分のマシンで開発サーバーのコピーを実行したいと思います。質問は:

iPhoneシミュレータからホストマシンのネットワーク(この場合はhttp)にアクセスするにはどうすればよいですか?

私はアプリと一緒にWebサービスを開発しているので、両方をホストマシンに置いておくと役に立ち、必要に応じて変更をコミットできます。


開発サーバーのセットアップは何ですか?
Nick Weaver、

iOS SDKで使用するライブラリを考えていますか?URL文字列、つまり「localhost:#### / myURL」を提供できれば十分です。
Jacob Barnard、

回答:


132

iOSシミュレーターはホストマシンネットワークを使用するため、WebサービスがリッスンしているIPを問わず、localhostまたはマシンのIPアドレスを使用できます。


jaminguyの答えを拡張して、MAC OSXにはApacheサーバーも組み込まれています。ただグーグル検索をしてください.....
シド

1
どのポートが使用されているかをどのように確認できますか?
Doidgey 2013年

3
ポートはWebサーバーの設定によって異なります
zambono

1
USB経由で接続されたデバイスからこれを行うことはできますか?
Ian Warburton

1
@IanWarburton別のデバイスでは、コンピューターのIPv4アドレスは必要ありません。(両方のデバイスが同じネットワーク上にない場合、それはより複雑になります)
cameloper 2018

5

Swift 5では、次のように呼び出します。

http://localhost:<port>/file_path 

ただし、このパーツをプロジェクトに追加する必要がありますInfo.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>  

そうしないと、このエラーが発生します。

Cannot start load of Task <xx-xx>.<x> since it does not conform to ATS policy.


1
この答えはうまくいきますが、これに取り組む良い方法ではありません。Appleは、開発者がURLを勝手にロードすることを強くお勧めしません。このアプローチを使用する場合、アプリはストアに受け入れられません。アプリの特定のドメインを正しくホワイトリストに登録する方法については、この回答stackoverflow.com/questions/31254725/…をご覧ください
SamG

1
そうですね、このアプローチは開発時にのみ使用してください。
unixeO
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.