質問: iOS アプリと、それと通信を行う api サーバーの開発を mac でしています。普段はシミュレーターベースの開発で、その際には localhost で立てた api サーバーを参照させていたので、問題なく動いていました。実機での挙動を確認したくなったので、 iPhone を mac に接続して、アプリを動かそうとしたときに、 api を取得するホストは、 localhost ではなく、 mac のものを指定する必要があることに気がつきました。 mac の IP を指定するにあたって、今 mac がつながっている LAN に、 iPhone も接続させて、プライベートIP をアプリケーション上で指定し、かつ api サーバーを 0.0.0.0 でバインドすれば、ひとまず動くことは確認したのですが、たとえばシェアオフィスであったり、カフェで作業する場合などには、この方法はあまりとりたくないと考えました。 ### 質問: * mac から、動作確認のために iPhone に対してアプリをデプロイする際に、 LAN を構築して、 iPhone からしかアクセスできないようなネットワークを構築できたりなどしないでしょうか。(ないし、接続されている iPhone で、ホストの mac を解決可能な形で指定する方法などはありますか?)
回答: 方法は2つ考えられます。 方法1:Macに割り当てられているIPアドレスをターミナルアプリから「ifconfig」で調べて、都度iOSのアプリのソースをそのIPアドレスに変更する方法 方法2:Macをインターネット共有を利用してWifiルーター化して接続する方法 **方法1** 1)任意のカフェやシェアオフィスに接続します。 2)Macからターミナルアプリを起動し、「ifconfig | grep inet」コマンドを実行します 3)Macが所持しているIPアドレスの一覧が出ますので、そのIPアドレスをiOSアプリのAPIサーバーのIPアドレスに指定します。 IPアドレスは複数表示されることが多いですが、大体192.168.で始まるものか10.で始まるものが使うべきIPアドレスだと思います。 **方法2** 1)任意のカフェやシェアオフィスに接続します。 2)次のURL「」を参考にMacをWifiルーター化します 細かい手順を以下に引用します。 > > 1.システム環境設定を選択 > > 2.共有(3段目の右端)を選択く > > 3.画面左側のサービス一覧から、インターネット共有を選択 > > 4.画面右側のポート一覧から、WI-FIを選択し、枠の下のWF-FIオプションを選択。 > > 5.ネットワーク名、チャンネル、セキュリティ、パスワードを設定する。 > > 6.最後に、「共有」のサービス一覧のインターネット共有にチェックを入れて終わり。 > > > 3)ここで作成したWifiにiPhone端末で接続します。(自動認識しないときは手動設定してください) 4)接続に成功すれば、「設定アプリ」>「Wi-Fi」>「接続されているwifi」をタップし、そこに表示されるルーターのIPアドレスがMacのアドレスになるはずです。 5)ルータのIPアドレスをiOSアプリのAPIサーバーのアドレスに設定します。 余談ですが、Mac上でAPIサーバーを立てず、どこかサーバーを借りてAPIサーバーにした方が、どこからでも接続できていいかもしれません 以上、いかがでしょうか?