
iOSシミュレータの位置情報をコマンドラインから制御する
先日、ジオフェンス機能のテストにおいて複数の地点を検証していた。iOSシミュレータのDebugメニューから位置情報を手動で切り替えていたが、10箇所以上のテストポイントを順番に確認していくうちに、この作業の非効率さを感じた。
もっと効率的な方法はないかと調べたところ、xcrun simctl
コマンドを使えばコマンドラインから直接位置情報を制御できることが分かった。実際に試してみると想像以上に便利だった。
本記事では、iOSシミュレータの位置情報をコマンドラインから設定・変更する方法を紹介する。
検証環境
- macOS 15.7
- Xcode 26.0
- iPhone Air / iOS 26.0
基本的な使用方法
手順1:シミュレータのデバイスIDを確認する
位置情報を設定するには、対象のシミュレータを特定する必要がある。以下のコマンドで利用可能なシミュレータの一覧を確認できる。
# 利用可能なシミュレータ一覧を表示
xcrun simctl list devices
出力例:
== Devices ==
-- iOS 26.0 --
iPhone 17 Pro (4FC327A0-9628-43E7-A8A3-766770D04E31) (Shutdown)
iPhone 17 Pro Max (C3FE4AB6-C359-4690-A1E6-0503D32D4412) (Shutdown)
iPhone Air (0C7FAC3A-A6DC-4D4E-885E-D359A94C0654) (Booted)
起動中のシミュレータには「(Booted)」と表示される。この場合、デバイスIDの代わりにbooted
キーワードの使用も可能だ。
手順2:位置情報を設定する
特定の緯度・経度を設定するには、以下のコマンドを使用する。
# 基本構文
xcrun simctl location <device_id> set <latitude>,<longitude>
# 起動中のシミュレータに東京駅の座標を設定
xcrun simctl location booted set 35.6812,139.7671
# 起動中のシミュレータに大阪駅の座標を設定
xcrun simctl location booted set 34.702331,135.496025
# 特定のデバイスIDを指定する場合
xcrun simctl location 0C7FAC3A-A6DC-4D4E-885E-D359A94C0654 set 35.6812,139.7671
手順3:設定の確認
位置情報が正しく設定されたかは、シミュレータ上でマップアプリを開いて確認できる。現在地アイコンをタップすると、設定した座標の位置が表示される。
位置情報のリセット
テスト終了後は、位置情報をクリアできる。
# 位置情報をクリア
xcrun simctl location booted clear
このコマンドを実行すると、シミュレータの位置情報設定が「None」に戻る。
まとめ
xcrun simctl location
コマンドを使用することで、iOSシミュレータの位置情報をコマンドラインから簡単に制御できる。
位置情報を使用する機能の開発やテストに携わっている開発者は、ぜひこの方法を試してみてほしい。開発効率の向上につながるはずだ。