Posted at

10分で出来る!ポケモンGoのようなアプリで位置情報をエミュレート(偽装)する方法

More than 3 years have passed since last update.


結論


  • 位置情報を使ったiOSアプリの開発では、Xcodeの位置情報エミュレート(偽装)機能を使うとデバッグが簡単になる。


背景


  • ポケモンGoのような位置情報を扱うアプリケーションを開発する際、デバッグのために歩きまわっていては工数が増大する。


  • 部屋にいながら指定した位置に移動したり指定した場所を歩き回れたら便利!



位置情報のエミュレート方法


GPXファイルの作成


  • 通過経路を緯度経度で示したtest.gpxを作成する。


test.gpx

<?xml version="1.0"?>

<gpx version="1.1">
<wpt lat="35.62053534011689" lon="139.7733771800995" />
<wpt lat="35.62682738390902" lon="139.76936012506485" />
<wpt lat="35.62824467347681" lon="139.77133870124817" />
</gpx>


位置情報エミュレート


  1. Xcodeを起動する。

  2. 任意の新規アプリを作成する。

  3. iPhoneを有線で接続した状態で実機でRunする。

  4. swiftファイルと同じ階層にgpxファイルを配置する。

  5. 右上に向かう矢印をクリックしてtestを指定する。

  6. 位置情報のエミュレート完了!

test.gpxの場所

スクリーンショット 2016-08-16 00.58.44.png


位置情報の確認


  • エミュレートされた位置情報は、端末内の全てのアプリで共有される。


    • ex) GoogleMap, ポケモンGo...etc



  • GoogleMapを開いて、現在地が指定した緯度経度になっていることを確認する。


Tips



  • test.gpx<wps>を複数記述することで、順番に位置情報が移動する。

  • 移動速度は不明だが、10m間隔にしたところ、ポケモンGoで歩いているモーションを確認した。


  • <wps>は最後の位置まで到達するとループする仕様になっている。

  • 位置情報のエミュレート中に、誤ってポケモンGoのようなアプリケーションを開き、ありえない速度で移動していた場合、アカウント停止などの処罰を受ける可能性があるので注意が必要。


まとめ


  • XcodeとiPhoneがあれば、10分で位置情報のエミュレーションが可能!


次回予告


  • 次回は、一定速度での移動を実現する方法について投稿する予定。