Control Room – A macOS app to control the Xcode Simulator
Control Room is a macOS app that lets you control the simulators for iOS, tvOS, and watchOS – their UI appearance, status bar configuration, and more. It wraps Apple’s own simctl command-line tool, so you’ll need Xcode installed.
You’ll need Xcode 14.0 or later to build and use Control Room on your Mac.
To try Control Room yourself, download the code and build it through Xcode. It’s built using SwiftUI, so you’ll need macOS Big Sur in order to run it. You will also need Xcode installed, because it relies on the simctl command being present – if you see an error that you’re missing the command line tools, go to Xcode’s Preferences, choose the Locations tab, then make sure Xcode is selected for Command Line Tools.
Control Room is packed with features to help you develop apps more effectively, including:
- Taking screenshots and movies, optionally adding the device bezels to your screenshots.
- Adjusting the system time and date to whatever you want, including Apple’s preferred 9:41.
- Controlling status of WiFi, cellular service, and battery.
- Opening the data folder for your app, or editing your
- Overriding dark or light mode, language, accessibility options, and Dynamic Type content size.
- Picking a custom user location from anywhere in the world.
- Starting, stopping, installing, and removing apps.
- Sending test push notifications or triggering deep links.
- Selecting colors from the simulator, converting them to UIKit or SwiftUI code, or even dragging directly into your asset catalog.
Plus there’s an optional menu bar icon adding quick actions such as re-sending the last push notification or re-opening your last deep link.
Any help you can offer with this project is most welcome – there are opportunities big and small so that someone with only a small amount of Swift experience can help.
Some suggestions you might want to explore:
- Handle errors in a meaningful way.
- Add documentation in the code or here in the README.
- Did I mention handling errors in a meaningful way?
You’re also welcome to try adding some tests, although given our underlying use of simctl that might be tricky.
If you spot any errors please open an issue and let us know which macOS and Xcode versions you’re using.
Please ensure that SwiftLint returns no errors or warnings before you send in changes.
Control Room was originally designed and built by Paul Hudson, and is copyright © Paul Hudson 2023. The icon was designed by Raphael Lopes.
Control Room is licensed under the MIT license; for the full license please see the LICENSE file. Many other folks have contributed features, fixes, and more to make Control Room what it is today. Control Room is built on top of Apple’s simctl command – the team who built that deserve the real credit here.
Swift, the Swift logo, and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries.
If you find Control Room useful, you might find my website full of Swift tutorials equally useful: Hacking with Swift.
Mobile App Development Best Practices – 06.06
iOS SwiftUI Testing: a Pragmatic Approach Enhancing Security in iOS Applications: Best Practices and Code Examples Beautify Code Without Optionals...
Apple announces Vision Pro augmented reality headset
The Vision Pro is marketed primarily as an AR device, but it can switch between augmented and full virtual reality...
WWDC 2023 Keynote
Check out the WWDC23 keynote, where the latest Apple Vision Pro, MacBook Air 15″, software, services and operating systems were...
LeetCode by Swift – Solutions to LeetCode by Swift
LeetCode Online Judge is a website containing many algorithm questions. Most of them are real interview questions of Google, Facebook, LinkedIn, Apple, etc....
Mobile App Development Best Practices – 05.06
iOS Using Upcoming Feature Flags Network Path Monitoring What’s new in Swift 5.9? Building a robust clean architecture/VIPER iOS app...
Create a game with libGDX
In this exciting episode of our show, we dive into the thrilling world of game development with our guest, Daniele...