63

Mac で Ruby on Rails プロジェクトを実行しています。Androidフォンでテストする必要があります。AndroidフォンでMacのローカルホストを表示する方法はありますか?

4

13 に答える 13

85

「localhost」という名前は、自分のコンピューターへの単なるループバックです。Android でアクセスするには、コンピューターの IP アドレスを見つける必要があります。

Mac と Linux の両方で機能するこの情報を見つける最も一般的な方法は、ターミナルに移動してifconfig. 「en0」または「en1」のいずれかを探し、そのエントリの下で「inet」リストを探します。「192.168.1.100」のようなものになります。そのアドレスが見つかったら、それをブラウザのアドレス バーに入力します。

(具体的には Mac では、システム環境設定の [共有] ペインに移動すると、そこに表示されます。)

于 2012-06-12T22:08:34.083 に答える
17

Here's a quick to-do to have your localhost available for tests on other devices :

1) identify the IP of your Android : select the Wi-Fi you're connected (the same as the one the Mac is on), you'll have the IP detailed on it). For the example : we suppose your Android IP is : 192.168.0.10

2) open a Shell on your Mac and edit your host :

sudo nano /etc/hosts

3) edit the file as this :

127.0.0.1 192.168.0.10

4) Identify your Mac IP : (as @Chuck perfectly explained) (in your shell) :

ifconfig

5) Open your favourite webbrowser you use on your phone and connect to your Mac IP (with the port if needed) with directly something like :

http://192.168.x.x:8000/

6) Enjoy your test :)

Notice you can do that for every support connected on your Wi-Fi.

于 2013-04-06T20:23:21.700 に答える
16

モバイル デバイスとコンピュータが同じネットワーク上にあると仮定すると、Chunk の答えは正しいです。ただし、localhost サーバーをより広いインターネットから見えるようにする場合 (3G を介したテスト、Webhook の開発、リモートの同僚/クライアントとのコラボレーションなど) には、ローカル アドレスとしてさらに多くのアドレスが必要です (10.* または 192.168.* で始まります)。 ) は、より広いインターネットからは見えません。

これに対する従来の解決策は、ポート フォワーディングと動的 DNS ですが、最近、このプロセスを簡単にすることを目的としたいくつかのサービスが登場しました (免責事項: 私はそのうちの 1 つである PageKite の作成者です)。

これらのサービスは、パブリック DNS 名と、「localhost」をクラウド内のリレー サーバー (別名リバース プロキシ) に接続するソフトウェアを提供します。たとえば、PageKite を使用している場合は、ターミナルで次のコマンドを実行できます。

$ pagekite.py 80 お名前.pagekite.me

http://yourname.pagekite.me/... からで実行されている Web サーバーへのマッピングを作成しますhttp://localhost:80。プログラムの実行中、ローカルホスト サイトはインターネットの他の部分から見えます。再び非公開にするには、pagekite.py コネクタ プログラムをオフにするだけです。

完全を期すために、私が認識している localhost トンネリング サービスの一部を以下に示します。

  • PageKiteは、"pay-what-you-want" オンライン サービスを備えたフリー ソフトウェア (Python) です。存続期間の長いサブドメインを必要な数だけ作成できます。ワイルドカード SSL 証明書が含まれ、フロントエンド リレーが複数の地理的な場所で実行され、冗長性と応答性が提供されます。
  • Localtunnelは、接続に一時的な名前を付ける無料の (Twilio が後援する) Ruby ソリューションです。名前は再利用されるため、接続中に予期しないトラフィックが発生する可能性があることに注意してください。
  • Showoff.io と Tunnlr.com は、Localtunnel に匹敵する独自の有料サービスで、同じ基本技術 (ssh トンネル) に基づいています。

(最後の 2 つにリンクしていないことをお詫びします。SO スパム保護により、競合他社との公平性が妨げられています。;-)

于 2012-06-13T09:39:33.717 に答える
13

今日、この素晴らしい無料のツールを見つけました -セットアップが本当に簡単で、魅力のように機能します! Mac OS、Linux、および Windows 用のバージョンも利用できます。

https://ngrok.com/

(私はそれとは一切関係ありません)

于 2016-04-11T17:55:27.383 に答える
3

このスレッドを読んだ後(そして提案が機能しています!)、この問題を解決するための単一のガイドをまとめました。各ステップのスクリーンショットと参照先があるガイドへのこのリンク。または、テキストを下に貼り付けます。お手伝いありがとう!

まず、スマートフォンとラップトップの両方が同じ WiFi ネットワークに接続されている必要があります。携帯電話のモバイル ホットスポットを使用している場合は、引き続き機能します。ただし、先に進む前に、必ず両方のデバイスを同じネットワークに接続してください。

次に、電話機の IP アドレスを収集します。そのために、Network Info II アプリを使用します。これを達成するための最も確実な別の方法があります。ただし、Network Info II は必要に応じて機能し、このチュートリアル用のドキュメントです。

コンピューターでターミナルを開き (現在のディレクトリは気にしないでください)、コマンド sudo nano /etc/hosts/ を実行します。システムパスワードを入力すると、ターミナルの上部近くに、localhost という単語が続く数字の文字列が表示されます。localhost は実際には、コンピューター自体のサーバー アドレスのエイリアスにすぎないため、ブラウザーで localhost にアクセスすると、http 要求がローカル マシンにルーティングされるだけです。電話をこのループに結び付けるには、数字の文字列と Localhost の間に IP アドレスを入力します。

これを保存するには、保存するように求められたら、control + X を押してから Y を押します。その後、Enter キーを押すと、標準のコマンド ラインに戻ります。

ターミナルで 2 番目のタブを開き、ローカル サーバーを起動します。私は単純な python サーバーを使用してこれをテストしただけで、ターミナル python -m SimpleHTTPServer 8000 で実行することによって実行できます。参照するのはポート番号です。シンプルな python サーバーを使用する場合、そのポート番号は 8000 です。

ターミナルで ifconfig を実行します。これにより、大量の情報が表示されます。半分ほど下にスクロールする必要があります。探しているのは、en0: または en1: キー内の inet の後、netmask の前に続く数字の文字列です。

終わり!Android でブラウザを開き、inet 番号にアクセスし、その後にコロン (:) とポート番号を入力します。

于 2016-04-13T17:23:38.397 に答える