Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

localhost(PC側)にiOSやAndroidのシミュレータから繋ぐ方法

現在僕はネットを解約してネットが使えない状況なので、
ネットに繋がっていない状態でもどうにかiOSとAPIの開発したいと思い、
調べたところ、意外にあっさり出来たのでメモ。

やりたいこと

  • iOSシミュレータからPHPのビルトインサーバへアクセスしたい
  • ルータを使わずにMac一台で完結させたい

環境

  • Xcode:v7.3.1
  • Mac:OS X EI Capitan

方法

LAN経由でやっているところが多かったので、
難しいのかなと思ったのですが、やってみたら簡単でした。

'Hello World'が無事に取得できることを目標にします。

test.php
<?php
$json = json_encode('hello world');
echo $json;

localhost:8001でウェブサーバを起動(PHPでやります)

 php -S localhost:8001

iOSシミュレータ側で通信する際のIPアドレスにlocalhost:8001を指定
viewDidLoad()へ下記のコードを記述。(Alamofire導入済みを想定。AFNetworkingとかでもおk)

ViewController.swift
Alamofire.request(.GET, "http://localhost:8001/test.php")
                .responseJSON { response in

                    switch response.result {
                    case .Success(let value):
                        print(JSON(value).stringValue)
                        break
                    case .Failure:
                        print("fail")
                    }
            }

あとは起動すれば...

スクリーンショット 2016-08-26 10.46.34.png

出来ました!やった!

でも、これどうやってシミュレータがネットに繋がっているのかという疑問が出てきました...。
機会があったら調べてみます。

参考

大変参考になりました!Androidシミュレータでもできるみたいです!Androidシミュレータからは10.0.2.2でPCホストへ接続できるみたいです。
* https://ultimate-ez.com/2014/03/25/3530/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
10
Help us understand the problem. What are the problem?