【iOS/Xcode】シミュレーターのステータスバー(時刻、ネットワーク、バッテリー)を変更してデバッグする方法
この記事からわかること
- XcodeのiPhoneシミュレーターでステータスバー(時刻、ネットワーク、バッテリー)を変更してデバッグする方法
index
[open]
\ アプリをリリースしました /
環境
- Xcode:26.3
- iOS:26.3
- Swift:6
- macOS(M1):Tahoe 26.2
iOSのシミュレーターでステータスバーを変更する方法
iOSのシミュレーターではステータスバーに表示されている時刻、ネットワーク、バッテリーなどの情報をxcrun simctlコマンドを使用することで柔軟にデバッグすることができます。カスタマイズできる項目はxcrun simctl help status_barコマンドを実行することで確認することができます。
$ xcrun simctl help status_bar
Set or clear status bar overrides
Usage: simctl status_bar <device> [list | clear | override <override arguments>]
Supported Operations:
list
List existing overrides.
clear
Clear all existing status bar overrides.
override <override arguments>
Set status bar override values, according to these flags.
You may specify any combination of these flags (at least one is required):
--time <string>
Set the date or time to a fixed value.
If the string is a valid ISO date string it will also set the date on relevant devices.
--dataNetwork <dataNetworkType>
If specified must be one of 'hide', 'wifi', '3g', '4g', 'lte', 'lte-a', 'lte+', '5g', '5g+', '5g-uwb', or '5g-uc'.
--wifiMode <mode>
If specified must be one of 'searching', 'failed', or 'active'.
--wifiBars <int>
If specified must be 0-3.
--cellularMode <mode>
If specified must be one of 'notSupported', 'searching', 'failed', or 'active'.
--cellularBars <int>
If specified must be 0-4.
--operatorName <string>
Set the cellular operator/carrier name. Use '' for the empty string.
--batteryState <state>
If specified must be one of 'charging', 'charged', or 'discharging'.
--batteryLevel <int>
If specified must be 0-100.
シミュレーターのデバイス名を確認する
ステータスバーを変更する際には対象のシミュレーターデバイス名を指定する必要があります。以下のコマンドを実行することでアクティブになっているデバイス名を確認することができます。
$ xcrun simctl list | grep Booted
iPhone 17 Pro Max (A4C53170-5D01-48FF-87FE-CBAE2E198388) (Booted)
デバイス名を指定せずにアクティブになっている端末を指定するには、bootedを使用します。
$ xcrun simctl status_bar booted override --time "11:15"
時刻を変更する
時刻は--timeオプションを使用して変更することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --time "11:15"
時間はHH:mm形式で指定できるようですが、"11:00"のようにちょうどの時間を指定しようとするとエラーになってしまいました。解決方法は不明です。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --time "11:00"
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Simulator device failed to complete the requested operation.
Invalid argument
Underlying error (domain=NSPOSIXErrorDomain, code=22):
Invalid, non-ISO date/time string
Invalid argument
ネットワークを変更する
ネットワークは--dataNetworkオプションを使用して変更することができます。変更できるのはhide、wifi、3g、4g、lte、lte-a、lte+、5g、5g+、5g-uwb、5g-ucです。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --dataNetwork "4g"
Wi-Fiの状態を変更する
Wi-Fiの状態は--wifiModeオプションを使用して変更することができます。searching、failed、activeのいずれかを指定することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --wifiMode "active"
Wi-Fiの強度を変更する
Wi-Fiの強度は--wifiBarsオプションを使用して変更することができます。0〜3の値を指定することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --wifiBars 1
通信回線の状態を変更する
通信回線の状態は--cellularModeオプションを使用して変更することができます。notSupported、searching、failed、activeのいずれかを指定することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --cellularMode "active"
通信回線の強度を変更する
通信回線の強度は--cellularBarsオプションを使用して変更することができます。0〜4の値を指定することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --cellularBars 2
通信回線のキャリア名を変更する
通信回線のキャリア名は--operatorNameオプションを使用して変更することができます。--cellularMode activeを付与することで任意のキャリア名を設定できます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --operatorName "楽天" --cellularMode active
バッテリー状態を変更する
バッテリー状態は--batteryStateオプションを使用して変更することができます。charging/charged/dischargingのいずれかを指定することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --batteryState "charging"
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --batteryState "charged"
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --batteryState "discharging"
バッテリーレベルを変更する
バッテリーレベルは--batteryLevelオプションを使用して変更することができます。0〜100の間で指定することができます。
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --batteryLevel 50
$ xcrun simctl status_bar "iPhone 17 Pro Max" override --batteryLevel 20
設定をリセットする
ステータスバーの設定をリセットするにはclearオプションを使用します。
$ xcrun simctl status_bar "iPhone 17 Pro Max" clear
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。





