Take iOS Simulator screenshots including device frame?
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
A raw iOS Simulator screenshot captures the app display, but App Store images and marketing mockups often need the device frame as well. The important distinction is that simulator capture and framed presentation are usually two separate steps. Once you understand that split, the workflow becomes predictable.
Know What the Simulator Actually Captures
The Simulator can save the current display quickly, either from the menu or from the command line.
That command captures the screen contents of the booted simulator device. It is excellent for automated UI testing, documentation, and CI pipelines because it produces a clean PNG without desktop clutter.
What it does not guarantee is a marketing-style hardware frame around the image. For that, you usually need a different step.
Two Reliable Ways to Get the Frame
There are two practical workflows.
- Capture the simulator window itself, with the bezel visible.
- Capture a raw screenshot and apply a frame afterward.
The first option is quick for one-off use. In the Simulator app, enable the visual device bezel and then use the macOS screenshot tool to capture the window. That records what you see on screen, including the frame, status bar, and any visible chrome.
The second option is better when you need consistent assets across many screenshots.
Capture Raw Screenshots for Automation
For reproducible results, start with raw screenshots from simctl.
This keeps the screenshot pipeline deterministic. You know the exact device, exact screen contents, and output path. That is much easier to automate than a manual window capture.
Raw screenshots are also easier to crop, version, and regenerate after UI changes.
Add Frames After Capture
A common approach is to frame the exported screenshots afterward with a separate tool. Fastlane is often used for this because it fits well into iOS release workflows.
Then run it from the project directory.
This workflow is useful when you need multiple locales or multiple devices with matching output. It also separates app rendering from presentation styling, which keeps the process easier to debug.
Use Window Capture for Quick Manual Results
If you only need one screenshot with a frame, manual capture is simpler than building a framing pipeline.
A practical sequence is:
- run the app in the desired simulator device
- make sure the device bezel is visible in the Simulator window
- use the macOS screenshot shortcut to capture that window
- crop any extra margins in Preview if needed
This gives you the real visible hardware frame, but it depends on screen scale, desktop layout, and window position. It is fine for ad hoc work, but not ideal for repeatable batches.
Separate Development Screenshots from Store Assets
Many teams mix up two different goals.
- Development screenshots are for bugs, docs, or test evidence.
- Store or marketing screenshots are polished visual assets.
For development, a raw simctl screenshot is usually better because it is clean and scriptable. For store assets, framed output often looks better, but it should usually be the last styling step rather than the capture step.
Keeping those workflows separate saves time. You do not need frames for every engineering screenshot.
Watch Out for Resolution and Scaling
Framed screenshots are only useful if the base image resolution matches the expected device output. If you resize the simulator window manually and then capture the whole window, you can end up with inconsistent scale between screenshots.
That is another reason raw simulator capture is a stronger foundation. It starts from the simulator's native rendered screen instead of from whatever size the window happened to be on your desktop.
Common Pitfalls
- Expecting
simctl io screenshotto behave like a full marketing export tool. - Capturing the simulator window manually and getting inconsistent scale across different screenshots.
- Forgetting that a visible bezel in the app window is different from a framed post-processing workflow.
- Using desktop screenshots in CI, where a deterministic command-line capture would be more reliable.
- Treating App Store imagery and engineering screenshots as if they had the same requirements.
Summary
- Raw simulator screenshots and device-framed screenshots are usually different steps.
- '
xcrun simctl io booted screenshotis the reliable way to capture screen contents.' - For one-off framed images, capture the simulator window with the bezel visible.
- For repeatable framed assets, capture raw images first and apply frames afterward.
- Choose the workflow based on whether you need automation or quick manual output.
Related reading
- Take screenshots in the iOS simulator
- Tap Action not working when Color is clear SwiftUI
- tap for more information or stop the app
- targetContentOffsetForProposedContentOffsetwithScrollingVelocity without subclassing UICollectionViewFlowLayout
- Task queue on Android like in GCD on iOS?
- Tensorflow-Lite pretrained model does not work in Android demo
- Tensorflow Android demo Detection using Front Camera
- Tensorflow Android demo load a custom graph in?
.png&w=3840&q=75)
Tackling System Design Interview Problems
A short course that equips you with the skills to approach system design interviews methodically.
Start the free courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.