Location Simulator を使用してiOSデバイスの位置情報を偽装する

オープンソースツール idevicelocation を使用するとコマンドラインから iOS デバイスの GPS 位置情報を偽装することができます。Xcode を起動することなく手軽に位置情報を偽装できますが、座標の緯度・経度を数値で指定しなくてはいけません。そこで、 idevicelocation をより便利に使用するための macOS アプリを作成しました。

github.com

Location Simulator を使用するとマップをタップすることで偽装する座標を指定できるようになります。 この記事では Location Simulator のビルドと操作方法について説明します。

Location Simulator をビルドする

1) 依存ライブラリのインストール

Location Simulator の動作には libimobiledeviceidevicelocation が必要です。 これらのツールのインストールについては、前回の記事を参考にしてください。

blue-developer.hatenablog.com


2) プロジェクトのビルド

(1) LoationSimulator のソースコードを github から取得します。

git clone https://github.com/watanabetoshinori/LocationSimulator.git

(2) プロジェクトファイル (LocationSimulator.xcodeproj)を Xcode で開きます。

(3) Xcode のメニューから Project > Run を選択します。

(4) ビルドが完了すると Location Simulator が起動します

f:id:watanabetoshinori:20180615154848p:plain

操作方法

操作を行う前に iOSデバイスを Lightning ケーブルで mac に接続しておきます。

1) 位置情報を偽装する

LocationSimulator のマップを偽装したい座標に移動させ、長押ししてください。 マップに青丸のアイコンが表示され、GPS座標の偽装が開始されます。

f:id:watanabetoshinori:20180615154911p:plain

この状態で iOS のマップアプリを開いてみてください。 GPS座標が偽装され、現在位置が指定した座標に移動しているはずです。

f:id:watanabetoshinori:20180615155622p:plain


2) 移動する

左下の移動ボタンを押すと、現在座標が移動します。

f:id:watanabetoshinori:20180615154945p:plain

外円にある青い三角形をドラッグして、移動方向を調整することができます。

f:id:watanabetoshinori:20180615154956p:plain

移動ボタンを長押しすると自動移動モードになり、一定間隔ごとに自動的に移動を続けます。

f:id:watanabetoshinori:20180615155102p:plain

移動距離は上部にあるセグメントを切り替えることで調整できます。 おおよその移動速度は、Walk では時速5km、Cycle では時速15km、Car では時速40km になります。


3) 偽装を終了する

右上にある Reset を押すと GPS 位置情報の偽装が終了します。 終了しないと iOS デバイスの位置情報が偽装されたままになるので注意してください。