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 を解決可能な形で指定する方法などはありますか?)
CC BY-SA 3.0
2017-12-05T03:24:46.127
40045
2017-12-05T06:23:04.227
754
question
ios macos network
開発のために接続された iPhone と mac の間で LAN を構築したい
方法は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「<http://omomukibukai.com/mac-router/>」を参考にMacをWifiルーター化します  
細かい手順を以下に引用します。

> 1.システム環境設定を選択  
>  2.共有(３段目の右端)を選択く  
>  3.画面左側のサービス一覧から、インターネット共有を選択  
>  4.画面右側のポート一覧から、WI-FIを選択し、枠の下のWF-FIオプションを選択。  
>  5.ネットワーク名、チャンネル、セキュリティ、パスワードを設定する。  
>  6.最後に、「共有」のサービス一覧のインターネット共有にチェックを入れて終わり。

3)ここで作成したWifiにiPhone端末で接続します。(自動認識しないときは手動設定してください)  
4)接続に成功すれば、「設定アプリ」>「Wi-
Fi」>「接続されているwifi」をタップし、そこに表示されるルーターのIPアドレスがMacのアドレスになるはずです。  
5)ルータのIPアドレスをiOSアプリのAPIサーバーのアドレスに設定します。

余談ですが、Mac上でAPIサーバーを立てず、どこかサーバーを借りてAPIサーバーにした方が、どこからでも接続できていいかもしれません

以上、いかがでしょうか？
CC BY-SA 3.0
2017-12-05T06:23:04.227
40047
2017-12-05T06:23:04.227
17014
40045
answer