LoginSignup
5
6

More than 3 years have passed since last update.

XcodeのUIテスト時にiOSシミュレータのステータスバーを変更する

Last updated at Posted at 2019-11-18

iOSシミュレータのステータスバーを変更する方法

Xcode11から xcrun simctl コマンドに status_bar 機能が追加され、iOS シミュレータのステータスバーの表示を変更できるようになりました。

(参考) iOSシミュレーターのステータスバーを変更する

fastlanesnapshot でストア用のスクリーンショット撮影する際などに活躍しそうですね!

ステータスバーを変更するタイミング

以下のようにして Test 開始前の Pre-actions で設定すると良さそうです。fastlane の snapshot も UI テストを使用するため、この設定で Snapshot が出力するスクリーンショット画像にも反映されます。

  1. Edit Scheme... > Test > Pre-actions を選択
  2. Run Script を追加
  3. Provide build settings from の部分で UIテストのターゲットを選択
  4. 図のようにステータスバーの変更のスクリプトを記述

pre.png

xcrun simctl boot "${TARGET_DEVICE_IDENTIFIER}"

xcrun simctl status_bar "${TARGET_DEVICE_IDENTIFIER}" override \
  --time "2010-01-28T09:41:00+09:00" \
  --dataNetwork 4g \
  --wifiMode active \
  --wifiBars 3 \
  --cellularMode active \
  --cellularBars 4 \
  --batteryState discharging \
  --batteryLevel 100

同様にして Post-actions の方には設定を元に戻すようにしておく。

post.png

xcrun simctl boot "${TARGET_DEVICE_IDENTIFIER}"

xcrun simctl status_bar "${TARGET_DEVICE_IDENTIFIER}" clear

(参考) https://github.com/fastlane/fastlane/issues/15124

:point_right: fastlane の issue に機能リクエストがあがっているのでそのうち実装されるかも!?

:point_right: fastlane の snapshot 機能に override_status_bar というオプションで利用できるようになっていますね。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6