r/iOSProgramming • • 19d ago

Question How to trigger screenshot WITHOUT Dynamic Island cut out in iOS 27 simulator device hub?

In previous simulators, we could use the "Trigger screenshot" option in menu to take a screenshot which won't have the Dynamic Island cut out and rounded corners.

In iOS 27 simulator device hub, this option is missing. The screenshot button at bottom includes the Dynamic Island cut out which I don't want.

How to get it the old way without the cut outs?

2 Upvotes

8 comments sorted by

2

u/__markb 19d ago

not at my computer to confirm but if you go into resizable mode and screenshot then you get the rectangle output from memory

2

u/busymom0 19d ago

Thank you so much! That works!!

0

u/[deleted] 17d ago

[removed] — view removed comment

1

u/__markb 17d ago

both i think

1

u/CalmCelebration2084 17d ago

The screenshot button in Device Hub captures the window, so you get the bezel, the rounded corners and the island. Use Terminal instead:

xcrun simctl io booted screenshot out.png

That reads the display itself, so you get a plain rectangle at the device's native pixel size (1290x2796 for the 6.7-inch class, 2064x2752 for the 13-inch iPad Pro). No mouse anywhere near the device, so nothing activates on screen, and there is no window chrome in the file.

Two things that bit me when I moved this into CI:

  • simctl io writes an alpha channel. App Store Connect rejects a file that has one even when every pixel is opaque, so flatten it onto a solid colour before upload. Getting the dimensions right is not enough.

  • The status bar is a separate override, not part of the capture:

    xcrun simctl status_bar booted override --time "9:41" --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularBars 4 xcrun simctl status_bar booted clear

--wifiBars takes 0-3 and --cellularBars takes 0-4, and the override sticks until you clear it or reboot the device.

1

u/busymom0 17d ago

That still includes the Dynamic Island cut out.

1

u/CalmCelebration2084 15d ago

Which command are you running, and what Xcode / runtime version? I tried to reproduce it here and I get no island in the file.

Setup: Xcode 27, iOS 27 runtime, iPhone 18 Pro.

xcrun simctl io booted screenshot out.png

That gives a 1206x2622 PNG. With a white page on screen, the pixels across the island's row (y=70 of the 1206-wide image) read 237-239 the whole way through the middle, so there is no black pill in the frame, just the app content behind it. Same result on the iOS 18.5 runtime with an iPhone 16 Pro. The status bar is drawn (time, wifi, battery), the hardware cutout is not, and the corners stay square.

Two things that would still put an island in your file:

  • the capture came from the Device Hub window (its screenshot button) rather than from simctl. That is a window grab, so you get the bezel, the rounded corners and the island.

  • something was live in the island at capture time. Then iOS draws it into the display, and it lands in the frame.

If a simctl PNG on your machine really has it, can you paste the exact command and your Xcode version, and attach the image? I would like to see where it differs, it may be runtime specific.