Edited at

MacとiPhoneでlocalhost接続を行う方法(iOS9)

More than 3 years have passed since last update.

Web開発やアプリ開発をする上で、実機でローカルホスト接続を行いたい場面があると思います。


実行環境

・iOS9

・OS X El Capitan 10.11.3

・Wi-fi接続

今回の実行条件としてiPhoneとMacが同じネットワーク上に接続していることが必須となります。

Lightningケーブルで接続する必要はありません。


Macのローカルホスト名を確認

まずはじめに、接続先となるMacのローカルホスト名を確認します。

ローカルホスト名は「システム環境設定」から「共有」を選択し、コンピュータ名が書いてあるテキストボックスの下に書いてあります。

ios-osx-local-1-min.png

「**.local」と書いてある文字列がそうです。右側の編集ボタンを押して違う名前に変更することも可能です。


Safariからローカルサーバーへ接続

ローカルホスト名が確認できたらMac上のブラウザからhttp://localhostと接続するように、localhostの部分をMacのローカルホスト名に置き換えてhttp://**.localと入力して接続します。

ios-osx-local-2-min.jpg

これでiPhoneからローカルホスト接続ができると思います。もし接続がうまくいかない場合は、同じネットワークに接続しているか、 またはポート番号を設定していて間違っていないかを確認しましょう。


アプリからローカルサーバーへ接続

ここまででiPhone上のブラウザからローカルサーバーへ接続するのは可能になったわけですが、Xcodeで作成したアプリから接続するには あとひとつ設定を行わなければいけません。

なぜなら、作成したアプリの設定では、App Transport Securityの影響でhttp接続の**.localのローカルサーバーとは通信できないからです。

そこで設定を変更する為に、作成したアプリのinfo.plistを開いて以下の項目を記入します。

<key>NSAppTransportSecurity</key> 

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

Xcodeのリスト表示上では、このように表示されれば設定は完了です。

ios-osx-local-3.png

以上で、iPhoneアプリからでもMac上のローカルサーバーへ接続できると思います。