How to make a simulator build to share
To share a simulator build, build your scheme with xcodebuild for generic/platform=iOS Simulator, take the .app from Build/Products/<Configuration>-iphonesimulator, and zip it with ditto -c -k --keepParent. Anyone with Xcode can install that .app in a simulator. It won't run on a real device.
Updated October 29, 2026.
No Mac for the order, but a Mac or macOS CI for the build
You don't need a Mac to order or download screenshots from Duo Screenshots. You do need one, or macOS CI with Xcode, to make the simulator build below. We don't accept source code, TestFlight links, device builds or .ipa files in place of that build. The service handles simulator setup and capture after you upload the zip; it doesn't replace your build pipeline.
Commands
Xcode project:
xcodebuild -project YourApp.xcodeproj -scheme YourApp \
-configuration Release \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath build \
buildWorkspace (CocoaPods, or several projects):
xcodebuild -workspace YourApp.xcworkspace -scheme YourApp \
-configuration Release \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath build \
buildZip the app:
cd build/Build/Products/Release-iphonesimulator
ditto -c -k --sequesterRsrc --keepParent YourApp.app YourApp.zipCheck it before you send it:
xcrun simctl install booted YourApp.app
xcrun simctl launch booted com.example.yourappWhat each option does
| Option | Why |
|---|---|
-destination 'generic/platform=iOS Simulator' | Builds for the simulator on any Mac, not for one named simulator |
-configuration Release | Same code paths and assets as your App Store build. Debug works too |
-derivedDataPath build | Puts the output in a known folder instead of ~/Library/Developer/Xcode/DerivedData |
ditto -c -k --keepParent | A zip that keeps the .app bundle intact, including symlinks inside frameworks. Plain zip -r without -y replaces those symlinks with copies |
Sources: xcodebuild -help, man ditto, Xcode — Running your app in Simulator.
Requirements for iPhone Duo
| Requirement | Why |
|---|---|
| Built with Xcode 27.1 or later (iOS 27.1 SDK) | Xcode 27.1 adds iPhone Duo support (Apple Developer News) |
| Deployment target 27.1 or lower | The iPhone Duo simulator runs iOS 27.1 |
| Simulator slice included | A device-only build (iphoneos) won't install in a simulator |
| No login wall without a demo account | Whoever shoots the screenshots needs to get past it. Use the same demo account you give App Review |
For a Full set, the same build must also run on our iPhone 6.3" and iPad 13" simulators, which use iOS 27.0. Keep the deployment target at 27.0 or lower and include a simulator-compatible architecture. The iPad capture is included only if your app supports iPad, not as an iPhone app in compatibility mode. An iPhone-only app gets three sizes at the same Full set price. The Duo simulator uses iOS 27.1; installing a newer SDK doesn't by itself make a device-only build simulator-compatible.
Common problems
| Symptom | Cause | Fix |
|---|---|---|
Unable to install: wrong architecture | You zipped the Release-iphoneos build | Use the -iphonesimulator folder |
| Build fails on signing | Simulator builds don't need a distribution profile | Add CODE_SIGNING_ALLOWED=NO to the build command if your project insists on a team |
| App crashes at launch only in the simulator | A framework without a simulator slice, or code that needs real hardware | Build the framework as an XCFramework with a simulator slice. Guard hardware-only code |
| The zip is huge | dSYMs or test bundles inside | Zip only the .app |
Using it with Duo Screenshots
This is the build Duo Screenshots asks for. Upload the zip and choose a Full set for all required sizes: iPhone 6.3" (1206 × 2622), iPhone Duo outer (1398 × 2034) and inner (native 2007 × 2853 or 2853 × 2007), plus iPad 13" (2064 × 2752) if your build supports iPad. Up to 6 screens per size, one language: up to 24 PNGs, or 18 for an iPhone-only app, at $39 either way. Inner orientation isn't selectable or guaranteed and may vary between screenshots. We don't rotate or resize PNGs. A Duo set is only the two Duo displays, up to 12 PNGs per language, $19 until March 1, 2027, then $29. Each extra language is $9, up to 5 languages per order. Free iPhone Duo check: layout report only, no screenshots, one per account.
We capture your app, not frames or captions, and you upload the files to App Store Connect yourself. Both paid sets arrive within 24 hours on business days from payment (Monday–Friday, New York time); the clock pauses while we wait for information from you. We don't need your source code. We delete builds, demo logins and reference screenshots 7 days after the order is finished, and your screenshots after 90 days.