(初心者向け)Swift3.0で初アプリ - iPhoneからMacbookへアクセス

Swift3.0を使って簡単なiPhoneアプリを作ってみます
[(初心者向け)Swift3.0で初アプリ - CocoaPods, Carthagoを使ってみる](https://qiita.com/egplnt/items/af8c6b043557a9578236)でAlamoFireを使えるようにしました
自分で自由に使える外部ウェブサイトなどをお持ちでないかたへ、iPhoneから自分のMacbookへアクセスしてアプリ開発の練習をできるようにしたいと思います。

#1. Macbookでapacheを起動しておきます
- iPhoneからMacbookへアクセスできることを確認するために、Apacheを使用します。いったんiPhoneからMacbookへアクセスできるようになったら、その後はApacheを使う必要はありません
- iPhoneからMacbookへアクセスできたことを確認するために、あらかじめ自分のMacbookで[apache](https://httpd.apache.org/)を起動しておきます。Apacheは世間で一般的に使われているウェブサーバーでMacbookにははじめから入っています。Apacheについては[こちら](https://httpd.apache.org/)をどうぞ。
- 下記コマンドでApacheを起動します

```:Apacheを起動するコマンド
sudo apachectl start
```

```:Apacheの起動
MacBookPro2:~ tohru$ sudo apachectl start
Password:
/System/Library/LaunchDaemons/org.apache.httpd.plist: service already loaded
MacBookPro2:~ tohru$ 
```

起動したらブラウザで`http://127.0.0.1`を開いてみます。下記のように表示されていればApacheの起動はうまくいっています

<img width="271" alt="スクリーンショット 2017-10-05 10.53.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/125842/e917e3d9-692e-e15b-d9f4-ebcf30349b4c.png">

#2. iPhoneからMacbookへつなぎます（方法１）
- iPhoneをMacbookへUSB接続します
- Macbookの「システム環境設定」（画面左上の🍎メニューなどから開きます）の「ネットワーク」メニューを開きます
- 接続しているネットワーク（「Wifi」など）を選択し、画面右下の「詳細」を選択します
- 表示される画面の左上から「TCP/IP」を選択し、現在使用している「IPv4アドレス」（下記の例では「192.168.11.39」）を入手します

<img width="656" alt="スクリーンショット 2017-10-17 10.41.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/125842/d87dacb1-26a0-b06f-13b7-c43ca3ebd74a.png">

- このIPv4アドレスを使ってiPhoneからMacbookへアクセスします
- iPhoneのブラウザ（Safari、Chromeなど）を開き、URLに下記を指定してアクセスしてみます

```
http://192.168.2.1
```

<img width="375" alt="IMG_0554.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/125842/6d5d16c2-9546-db88-f866-2ab9b03a7c11.jpeg">


- `It works!`が表示されればiPhoneからMacbookのApacheへのアクセスは成功しています


#3. iPhoneからMacbookへつなぎます（方法２）
- iPhoneをMacbookへUSB接続します
- Macbookの「システム環境設定」（画面左上の🍎メニューなどから開きます）の「共有」メニューを開きます
- 「コンピュータ名」の下の「ローカルネットワーク上のコンピュータから、次のアドレスでこのコンピュータにアクセスできます: xxxxx.local」と表示されているローカル名（文字列）を控えます
- 同じ「共有」メニューの下のほうで、「インターネット共有」を選びます。右側の「共有する接続経路」は「iPhone USB」を、その下の「相手のコンピュータでのポート」は「Wifi」を選択します。その下の「Wifiオプション」を押し、「インターネット共有ネットワークを構成します」のメニューでネットワーク名を確認します。必要に応じセキュリティのオプションで「WPA2パーソナル」などを選択し、パスワードを設定します

![スクリーンショット 2017-10-05 10.17.21.jpg](https://qiita-image-store.s3.amazonaws.com/0/125842/62335b73-fc9a-b3cc-641c-0f0438b0081b.jpeg)

- 「インターネット共有」をクリック（「インターネット共有」の左側のチェックボックスにチェックを入れます）し、「インターネット共有機能を開始してもよろしいですか？」のプロンプトに「開始」を選択します。
- Macbook画面右上のWifiのアイコンが真ん中に上向き矢印を表示するように変化します

<img width="39" alt="スクリーンショット 2017-10-05 10.17.40.png" src="https://qiita-image-store.s3.amazonaws.com/0/125842/bb32ad5c-eaaa-eb96-00a8-54d60479871c.png">

- iPhoneの「設定」→「Wi-Fi」を選択します。前項で設定した（Macbookの）Wifiネットワークを選択して接続します（パスワードを設定した場合はここで入力します）

- セキュリティソフトなどでファイアウォールの設定をされている場合は、ローカル接続での８０番ポートへのアクセスを許容するようにセキュリティ設定を変更しておきます
- iPhoneのブラウザ（Safari、Chromeなど）を開き、URLに下記を指定してアクセスしてみます

```
http://xxxx(上記で確認したローカル名（文字列））.local
```

- Macbookで`http://127.0.0.1`アクセスした際と同様に`It works!`が表示されればiPhoneからMacbookのApacheへのアクセスは成功しています
- 表示されない、タイムアウトしてしまう、などの場合には、IPアドレスでのアクセスを図ります。iPhoneの「設定」→「Wi-Fi」から接続したMacbookのWifiネットワークを選択します。表示された画面を下へスクロールし、「IPアドレス」や「ルーター」などに表示されるアドレスを確認します

<img width="375" alt="IMG_0555.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/125842/b2cb1a6b-e5c7-5a5f-80ff-98b759a07f99.jpeg">

- ここで表示されている`192.168.2.2`がiPhoneのIPアドレス、`192.168.2.2`がMacbookのIPアドレス（である可能性が高い）です
- Macbookでターミナルを開きます（Finder⇢アプリケーション⇢ユーティリティーで見つかります）
- ターミナルで`ifconfig`と入力します
- 表示される出力結果のうち、`bridge100`で表示されるアドレスがiPhoneとの接続で使われるIPアドレスです。上記と同じ`192.168.2.1`となっていることを確認します

```
mbp2:~ tohru$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
 :
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=3<RXCSUM,TXCSUM>
	ether de:a9:04:39:3c:64 
	inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
 :
```

- iPhoneのブラウザ（Safari、Chromeなど）を開き、URLに下記を指定してアクセスしてみます

```
http://192.168.2.1
```

<img width="375" alt="IMG_0554.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/125842/6d5d16c2-9546-db88-f866-2ab9b03a7c11.jpeg">


- `It works!`が表示されればiPhoneからMacbookのApacheへのアクセスは成功しています