All Projects → jessesquires → Nine41

jessesquires / Nine41

Licence: mit
Automate overriding the status bars for all running iOS simulators

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Nine41

Simctl
Ruby interface to xcrun simctl
Stars: ✭ 97 (-21.77%)
Mutual labels:  xcode, simulator
Isimulator
iSimulator is a GUI utility to control the Simulator, and manage the app installed on the simulator.
Stars: ✭ 963 (+676.61%)
Mutual labels:  xcode, simulator
Controlroom
A macOS app to control the Xcode Simulator.
Stars: ✭ 4,617 (+3623.39%)
Mutual labels:  xcode, simulator
Surmagic
🚀 The better way to deal with Binary Frameworks on iOS, Mac Catalyst, tvOS, macOS, and watchOS. Create XCFrameworks with ease.
Stars: ✭ 119 (-4.03%)
Mutual labels:  xcode, simulator
Swift Xcode
Use Swift Package Manager directly from within Xcode, w/o the cmdline
Stars: ✭ 121 (-2.42%)
Mutual labels:  xcode
Emptykit
A lightweight, swift library for displaying emptyView whenever the view(tableView/collectionView) has no content to display, just like DZNEmptyDataSet
Stars: ✭ 117 (-5.65%)
Mutual labels:  xcode
Linkmapparser
A tool for parsing iOS app link map file.
Stars: ✭ 117 (-5.65%)
Mutual labels:  xcode
Speculid
Easily Manage Graphics in Xcode Projects
Stars: ✭ 115 (-7.26%)
Mutual labels:  xcode
Backend
Backend is responsible to provide data to EVOlution App - iOS
Stars: ✭ 123 (-0.81%)
Mutual labels:  xcode
Xcode Build Times
This BitBar/SwiftBar plugin shows the time you spend waiting for Xcode to do your builds
Stars: ✭ 122 (-1.61%)
Mutual labels:  xcode
Ghwxcodeextension
Xcode Source Editor Extension 插件,实现功能有四个,一.初始化自定义view、UICollectionViewCell、UITableViewCell、viewController,自动删除无用代码和添加默认代码;二. 为属性自动添加懒加载代码、对应协议声明和协议方法,主要有 UITableView\UICollectionView\UIScrollView\UIButton\UILabel\UIImageView; 三.选中一个类,文件顶部自动添加对应的 import; 四. 给 import 分组排序,从上到下为 主类头文件、viewController、view、manager & logic、第三方库、model、category、其他。
Stars: ✭ 119 (-4.03%)
Mutual labels:  xcode
Jplogistics c152
A MSFS Addon to improve the Cessna C152
Stars: ✭ 118 (-4.84%)
Mutual labels:  simulator
Xib2storyboard
A tool to convert Xcode .xib to .storyboard files
Stars: ✭ 121 (-2.42%)
Mutual labels:  xcode
Alternate Icons
iOS alternate app icons from Asset Catalogs
Stars: ✭ 117 (-5.65%)
Mutual labels:  xcode
Whats New In Swift 5 1
An Xcode playground that demonstrates the new features introduced in Swift 5.1.
Stars: ✭ 122 (-1.61%)
Mutual labels:  xcode
Touch Bar Simulator
Use the Touch Bar on any Mac
Stars: ✭ 1,608 (+1196.77%)
Mutual labels:  simulator
Sqift
Powerful Swift wrapper for SQLite
Stars: ✭ 119 (-4.03%)
Mutual labels:  xcode
Uicircularprogressring
A circular progress bar for iOS written in Swift
Stars: ✭ 1,658 (+1237.1%)
Mutual labels:  xcode
Accesscontrolkitty
Xcode extension - quickly change access control level (public, private etc.) of selected Swift code by Editor menu item or keyboard command
Stars: ✭ 119 (-4.03%)
Mutual labels:  xcode
Devicesupport
Stars: ✭ 120 (-3.23%)
Mutual labels:  xcode

Nine41 CI

Automate overriding the status bars for all running iOS simulators

About

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:

  • The overrides do not persist across launches of the simulator
  • The numerous override options are difficult to remember
  • There are no sensible defaults

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.

Requirements

Installation

Swift Package Manager

Add Nine41 to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/jessesquires/Nine41.git", from: "2.0.1")
]

Alternatively, you can add the package directly via Xcode.

CocoaPods

pod 'Nine41'

Usage

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.

Automation with Xcode build phases

As described in this post, you can automate your perfect status bars using Xcode build phases.

  1. Add the Swift package to your Xcode project
  2. Add a "Run Script" build phase with the following:

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"
  1. Build and run. Note that simulators must be booted for the script to work, which means the very first run may not produce results but the subsequent runs will.

Contributing

Interested in making contributions to this project? Please review the guides below.

Also, consider sponsoring this project or buying my apps! ✌️

License

Released under an MIT License. See LICENSE for details.

Copyright © 2019-present Jesse Squires.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].