ScreenshotNeo

BlogHow-to

How to Set Up an iOS Simulator for Testing

Install an iOS Simulator runtime, choose or create a device in Xcode, and run your app. Learn why a physical iPhone is still needed for some checks.

By the ScreenshotNeo team4 October 20266 min read

Xcode’s iOS Simulator runs your app in a simulated iPhone or iPad environment on a Mac. To set it up, install a compatible version of Xcode, choose a scheme that includes your app target, install the needed iOS simulator runtime if it is missing, select or create a simulated device, and run the app. Use a physical iPhone as well when you need to verify behavior that depends on real hardware or device performance.

1. Check the Mac and Xcode prerequisites

You need a Mac and an Xcode release compatible with its macOS version. Compatibility changes between Xcode releases, so check Apple’s Xcode system requirements for the release you plan to use. Check the table’s specific row for both the host macOS and the simulator OS versions it supports; do not assume that a recently installed runtime will work with every Xcode release.

Install and open Xcode, then open your project. Xcode’s platform support and installed simulator runtimes determine which destinations are available. There is no universal disk-space figure for Xcode plus every runtime: review the installed components and recoverable storage in Xcode’s Components settings before downloading runtimes.

2. Select the app scheme

In the Xcode toolbar, select a scheme that builds and runs the app target you want to test. The active scheme affects the destinations Xcode offers. If the menu does not show an iPhone simulator, first confirm that you selected the app’s scheme rather than a framework, test bundle, or another target.

3. Install the iOS Simulator runtime

If the desired simulator destination appears as unavailable, use its Get button to download the required component. You can also open Xcode > Settings > Components and install the required iOS simulator runtime there. The exact runtime choices depend on the Xcode release and its platform support.

Apple also documents downloading Xcode components with xcodebuild. Because available component identifiers and command options can vary by Xcode version, consult the current component installation documentation and the help for the Xcode installed on your Mac before using that route.

4. Choose or create a simulated device

Open the run destination menu in the Xcode toolbar and choose an installed iPhone simulator. To add a device configuration, open Device Hub from Window > Devices and Simulators or use Xcode > Open Developer Tool > Device Hub, depending on your Xcode version. Choose Add Device, select the simulator OS version and device model, optionally enter a name, and create it.

A device configuration needs a compatible installed runtime. Creating another simulated device does not install a missing runtime by itself. For Apple’s current instructions, see running your app in Simulator or on a device.

5. Build and run the app

  1. Choose the app scheme and the iPhone simulator destination in the Xcode toolbar.
  2. Click the Run button or choose Product > Run.
  3. Wait for Xcode to build the app and launch it in Simulator.
  4. Exercise the flows you want to check, then use Xcode’s debugger and logs to investigate problems.

If the build fails, inspect the activity area or open View > Navigators > Issues (Command-5) to review the error or warning. Resolve build errors before treating a simulator launch failure as a runtime problem.

6. Pick the right test environment

Check Simulator Physical iPhone
Setup Runs on the Mac once Xcode support and a compatible runtime are installed. Requires connecting or pairing a device and may require signing or provisioning configuration.
Configurations Lets you select from available simulated models and runtimes; availability depends on Xcode, the scheme, and installed components. Tests the specific hardware and iOS version of the connected phone.
Hardware fidelity Useful for development and debugging, but does not reproduce all physical hardware behavior or performance. Required for checks that depend on actual hardware behavior or device performance.

Apple cautions that simulators do not replicate the performance or features of a physical device. Use a real iPhone when a check depends on hardware or performance. Simulator success alone cannot establish how an app behaves on every physical device.

Common problems and fixes

Problem Likely cause What to do
No iPhone destination appears The selected scheme is not the app target, or the needed platform support or runtime is absent. Select the app scheme, then check the destination menu for a Get prompt and review Xcode > Settings > Components.
The runtime cannot be installed or used The Xcode release, host macOS, and requested simulator OS may not be compatible. Check Apple’s requirements table for your exact Xcode release and install a supported runtime.
The simulator starts but the app does not The app may not have built successfully, or the selected scheme or destination may not match the app. Review the activity area and Issues navigator, verify the app scheme and destination, and fix build errors first.
A feature behaves differently on a phone The simulator does not reproduce every hardware feature or real-device performance. Repeat that check on an appropriate physical iPhone.
Xcode prompts for signing or provisioning The selected destination may be a physical device rather than a simulator. Confirm the run destination. Device signing and provisioning are not prerequisites for launching an app in the simulator.

Performance, reliability, and storage

Simulator testing is convenient for iterative development, but its behavior is bounded by the Mac, selected runtime, and simulated device configuration. Do not use it to make claims about real-device speed or hardware behavior. For results that depend on a physical sensor or other device feature, verify on hardware.

Install only the runtimes and device configurations needed for the project. Xcode’s Components settings show installed components and recoverable storage; available space depends on the Xcode version and components you choose. If setup fails, check compatibility and component availability before assuming a fixed disk-space threshold.

Or skip the browser setup

An iOS Simulator is for running an iOS app. If your testing workflow also needs screenshots of web pages, ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns a PNG, JPEG, WebP, or PDF. See the ScreenshotNeo API documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const image = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', image));
  • Cookie banners, newsletter popups, and chat widgets are removed before the shot; each cleanup step can be turned off.
  • Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Response headers report the page verdict and billing status.
  • An MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf.
  • 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000. Every feature is on every plan.

Sign up free for 1,000 screenshots a month, with no card required.

FAQ

Do I need to install Simulator separately?

Install and open Xcode, then add the iOS simulator runtime you need through the destination’s Get prompt or Xcode Components settings.

Can I run my app in Simulator without an Apple developer account?

The setup described here does not require physical-device signing or provisioning to launch in a simulator. Follow Xcode’s project-specific instructions if it reports a separate build configuration issue.

Does a passing simulator test prove the app works on an iPhone?

No. Use a physical device for checks that depend on actual hardware or performance.

Why do simulator choices differ between projects?

The selected scheme, Xcode platform support, and installed runtimes determine the available run destinations.

Apple references