SwiftでSimulatorStatusMagicを使ってみた
FastlaneのSnapshotでScreenshotを撮影していく際にバッテリー残量だったりキャリアが表示されてしまっていたりする場合、それをAppStoreに載せるのはよろしくありません。
そこでSimulatorStatusMagicと言うライブラリがあるので使ってみることにしました。
cocoapodで入れる
公式ドキュメントを読むとcocoapodで入れてdebugにすることが推奨されているようです。
pod 'SimulatorStatusMagic', :configurations => ['Debug']
使い方
キャリア名
SDStatusBarManager.sharedInstance().carrierName = ""
時間
SDStatusBarManager.sharedInstance().timeString = "18:07"
bluetoothの表示
SDStatusBarManager.sharedInstance().bluetoothState = .hidden
バッテリー詳細表示
SDStatusBarManager.sharedInstance().batteryDetailEnabled = false
SimulatorStatusMagicの設定を有効にする
SDStatusBarManager.sharedInstance().enableOverrides()
SimulatorStatusMagicの設定を無効にする
SDStatusBarManager.sharedInstance().disableOverrides()
UITestでの使用例
以下のメソッドをテスト前に呼び出す。
private func cleanStatusBar() {
SDStatusBarManager.sharedInstance().carrierName = ""
SDStatusBarManager.sharedInstance().timeString = "10:09"
SDStatusBarManager.sharedInstance().bluetoothState = .hidden
SDStatusBarManager.sharedInstance().batteryDetailEnabled = false
SDStatusBarManager.sharedInstance().enableOverrides()
}
そのままだとステータスバーの設定が残ってしまう可能性がある為tearDownで解除しておく
override func tearDown() {
SDStatusBarManager.sharedInstance().disableOverrides()
super.tearDown()
}
参考文献
Automate iOS screenshot with clean status bar and upload result to firebase hosting 🤖