App Store
App Store Connect requires an iPhone with Dynamic Island (medium display) set, such as the iPhone 17 Pro, for every iPhone app, plus a large-display iPhone set (the iPhone 17 Pro Max, or older Face ID screenshots), and a 13-inch iPad set when the app runs on iPad. Without a Mac, that usually means borrowing someone’s phone, fighting a status bar that shows 3% battery and a carrier name, or paying for a mockup tool that guesses at the pixels.
VibeView runs those exact devices as live simulators in your browser. The app is your real build, the status bar is the one Apple uses in its own marketing, and the Screenshot button and vibeview screenshot both save the device’s own pixels, not a copy of the video stream.
What you need
- A VibeView account. The free plan works, but its sessions are a few minutes each, so plan one device per session.
- A simulator build of your app that runs on its own: a release build, or a debug build with its JavaScript bundled in for React Native. Upload one, or build it in the cloud with
vibeview build --cloud. Flutter, React Native, Capacitor and native apps all work.
Take the screenshots
-
Open the app on the right device. On the Devices page, start an iPhone 17 Pro with your app. From the CLI:
vibeview dev --platform ios --app <app_id> --standalone --detach --model "iPhone 17 Pro"--standaloneruns the build as it is, without a dev server, and--detachgives you the terminal back while the session runs. It prints a link to the device in your browser. -
Clean up the status bar. In the Device tab of the tools panel, turn on Clean status bar. It shows 9:41, a full battery and full Wi-Fi and cellular signal, the same status bar Apple uses in its screenshots, and it stays on while you move around the app. Appearance switches the device between light and dark, if you want both sets.
-
Go to each screen and save it. Tap through the app in your browser, and at each screen click Screenshot next to the device (or press S). It saves a PNG of the device’s own pixels at full resolution, named after the app, the device and the time. From the terminal, the same picture is:
vibeview screenshot --out home.pngwhich uses the session you just started (pass
--session <id>for one you opened on the Devices page; the id is in its URL). If the confirmation after a click says the screenshot came from the video, the device didn’t answer in time and the picture can be smaller than the screen: take that one again. -
Repeat on the other devices. Stop the session with
vibeview dev-stop, then start an iPhone 17 Pro Max the same way (--model "iPhone 17 Pro Max") for the large-display set, and an iPad Pro 13-inch (--model "iPad Pro 13-inch") if your app runs on iPad.vibeview list-devices --modelslists every model you can pick. -
Upload them in App Store Connect. Drag the PNGs into the screenshot slots of your app version. VibeView uploads your binary with
vibeview submit; screenshots, like the rest of the listing, stay in App Store Connect.
The sizes you get
| Device | Screenshot size | App Store Connect display size |
|---|---|---|
| iPhone 17 Pro | 1206×2622 (portrait) | iPhone with Dynamic Island (medium display), required |
| iPad Pro 13-inch | 2064×2752 (portrait) | 13-inch iPad, required if your app runs on iPad |
| iPhone 17 Pro Max | 1320×2868 (portrait) | iPhone with Dynamic Island (large display), required unless you upload older Face ID large-display screenshots |
Apple’s rule: if your interface is the same across sizes, you only need the highest required resolution for each, and App Store Connect scales it down for smaller devices.
Let your coding agent take them
If you use Claude Code, Codex or Cursor with VibeView, an agent can walk through your app and take the screenshots for you: it turns on the clean status bar with vibeview set-status-bar clean, taps from screen to screen on the cloud device, and saves each one with the same screenshot command. See Coding agents to connect one.
Screenshots show whatever is on the screen, so sign in with a demo account and fill the app with good sample data before you start. A recorded test can do that setup for you on every device, and then the screens are the same each time you retake them.
Frequently asked questions
Are these the real App Store sizes? Yes. A screenshot on a cloud iPhone 17 Pro is 1206×2622 pixels and on an iPad Pro 13-inch 2064×2752, and an iPhone 17 Pro Max gives 1320×2868: sizes App Store Connect lists for its required medium and large Dynamic Island iPhone sets and its 13-inch iPad set. They are the device’s own pixels.
Does the clean status bar look like Apple’s? It’s the same override Apple’s own simulator tools use for marketing screenshots: 9:41, a full battery, and full Wi-Fi and cellular signal. It’s available on iOS phones and tablets.
Can I use a release build?
Yes, as long as it’s a simulator build. A signed .ipa is for physical devices and can’t run on a simulator, so screenshot the simulator build of the same version.
Do I need a paid plan? No, but free sessions are short, so a full set across iPhone and iPad goes faster on a paid plan: the Solo plan has no session length limit and more streaming minutes for retakes.
Next steps
- Upload to TestFlight without a Mac: send the build itself to App Store Connect
- Cloud builds: build the simulator and release builds without a Mac
- The Devices page: every control in the Device tab, including appearance and text size
Try it yourself
Open a live iOS simulator, Android emulator, Apple TV, Android TV or Roku in your browser.
Start free