Automate overriding the status bars for all running iOS simulators
Automate overriding the status bars for all running iOS simulators
Blog posts:
Xcode 11 shipped with simctl status_bar
, a tool to override the status bar values in the simulator so you can take perfect screenshots.
However, it has some issues:
This script fixes most of those issues. It overrides the status bars for all currently running simulators using "Apple's defaults" — full cellular bars, full wifi bars, full battery, no "carrier" name, and 9:41
for the time.
Add Nine41
to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/jessesquires/Nine41.git", from: "3.0.0")
]
Alternatively, you can add the package directly via Xcode.
pod 'Nine41'
After cloning the repo, you can create a custom bash command:
function nine41() {
swift run --package-path /PATH/TO/Nine41/
}
Then you can run this from the command line.
Example run with 2 open simulators:
$ nine41
Fixing status bars...
✅ iPhone 8, 65A6C323-E74D-452C-B85E-7F576259E022
✅ iPhone 11, 52E8FAD0-7743-4F85-AA2E-26E4C1275F38
Example run with no open simulators:
$ nine41
Fixing status bars...
❌ No simulators are running. Launch the iOS simulator first.
As described in this post, you can automate your perfect status bars using Xcode build phases.
For Swift Package Manager installations:
/usr/bin/xcrun --sdk macosx swift run --package-path "${BUILD_ROOT}/../../SourcePackages/checkouts/Nine41"
For CocoaPods installations:
/usr/bin/xcrun --sdk macosx swift "${PODS_ROOT}/Nine41/Sources/main.swift"
Interested in making contributions to this project? Please review the guides below.
Also, consider sponsoring this project or buying my apps! :v:
Released under an MIT License. See LICENSE
for details.
Copyright © 2019-present Jesse Squires.