Use Appium’s official XCUITest driver to automate iOS apps. The usual path is to install Appium and the driver on a Mac with Xcode, start an Appium server, create a session for a Simulator or iPhone, and write a test that finds a control, interacts with it, checks the result, and ends the session.
How Appium drives an iOS app
Your test code talks to Appium through a WebDriver client. On iOS, the XCUITest driver runs in Appium’s Node.js process and uses WebDriverAgent (WDA) to communicate with XCTest on the Apple target. That bridge lets you use an Appium client while Apple’s XCTest stack performs the UI automation. See the Appium driver architecture overview and the XCUITest overview.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Apple iPhone 14, 128GB, Midnight - Unlocked (Renewed) | $300.00 | Buy on Amazon |
| 2 |
|
Apple iPhone 16, 128GB, Pink - Unlocked (Renewed) | $552.01 | Buy on Amazon |
| 3 |
|
Apple iPhone 15, 128GB, Black - Unlocked (Renewed) | $409.00 | Buy on Amazon |
| 4 |
|
Apple iPhone 13, 128GB, Midnight - Unlocked (Renewed) | $262.00 | Buy on Amazon |
| 5 |
|
Apple iPhone 16e, 128GB, Black - Unlocked (Renewed) | $388.34 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
Prepare the host and install the driver
The standard setup uses macOS and Xcode or its developer tools. The XCUITest driver is installed separately from Appium; follow the official setup guide and installation guide for the prerequisites for your chosen versions.
- Prepare a Mac with Xcode and the required developer tools.
- Install Appium, then install the iOS driver with
appium driver install xcuitest. - Start the Appium server and confirm that the XCUITest driver loads.
- Choose a Simulator or prepare a physical iPhone, then create a session with the capabilities described below.
Do not assume the same setup works on every combination of Appium, driver, Xcode, and iOS release. Check the driver’s live system-requirements and Xcode-support documentation for the versions you intend to use; no complete compatibility matrix is established here.
#1 Best Overall
- This phone is unlocked and compatible with any carrier of choice on GSM and CDMA networks (e.g. AT&T, T-Mobile, Sprint, Verizon, US Cellular, Cricket, Metro, Tracfone, Mint Mobile, etc.).
- Please check with your carrier to verify compatibility.
- The device does not come with headphones or a SIM card. It does include a generic (Mfi certified) charging cable.
- Tested for battery health and guaranteed to have a minimum battery capacity of 80%.
Using Windows or Linux
The documented non-macOS route is a constrained exception, not a substitute for the ordinary Mac-and-Simulator workflow. It is limited to real devices running iOS or tvOS 18 or later, does not support automatic device selection, and does not support the default xcodebuild-based WDA startup. Follow the non-macOS host guide for its RemoteXPC-specific requirements.
Create an iOS session with capabilities
Capabilities are session-start parameters. The required values are platformName and appium:automationName; Appium-specific capabilities use the appium: prefix. XCUITest also needs an app, bundle identifier, or browser target to know what to launch. Consult the Appium capabilities guide and XCUITest capabilities reference.
Rank #2
- 6.1" Super Retina XDR OLED, HDR10, Dolby Vision, 1000nits (typ), 2000nits (HBM), 2556x1179px at 460ppi, 3561mAh Battery
- 128GB 8GB RAM, Apple A18 (3nm), Hexa-core (2x4.04 GHz + 4x2.20 GHz), Apple GPU 5-core, 16‑core Neural Engine
- Rear camera: 48MP, f/1.6, wide + 12MP, f/2.2, ultrawide, Front Camera: 12MP, f/1.9, wide, iOS 18, upgradable to iOS 18.5
- 4G LTE: 1/2/3/4/5/7/8/12/13/14/17/18/19/20/25/26/28/29/30/32/34/38/39/40/41/42/48/53/66/71, 5G: n1/2/3/5/7/8/12/14/20/25/26/28/29/30/38/40/41/48/53/66/70/71/75/76/77/78/79 - Dual eSIM
- Unlocked for freedom to choose your carrier. Compatible with both GSM & CDMA networks. The phone is unlocked to work with all GSM Carriers & CDMA Carriers Including AT&T, T-Mobile, Verizon, Sprint., Etc.
{
"platformName": "iOS",
"appium:automationName": "XCUITest",
"appium:deviceName": "iPhone Simulator",
"appium:app": "/absolute/path/to/MyApp.app"
}
Select the app and target
- Use
appium:appfor an installable local or remote.appor.ipapackage. - Use
appium:bundleIdwhen the app is already installed on the target. - For a Simulator, a device name can select the target. For a physical device or parallel runs, specify
appium:udidso the driver addresses the intended device.
Capabilities cannot be changed after a session starts. If the app, target, or other startup configuration changes, create a new session.
Free tools Windows power users keep installed
One-click scans. No signup required.
Write the test in your team’s Appium client
The source material does not establish one language, client library, locator strategy, or executable client syntax as best for every project. Use the Appium client and current client documentation for your chosen language rather than copying unverified sample syntax. The test’s core sequence is:
Rank #3
- 6.1inch Super Retina XDR display. Aluminum with color-infused glass back. Ring/Silent switch
- Dynamic Island. A magical way to interact with iPhone. A16 Bionic chip with 5-core GPU
- Advanced dual-camera system. 48MP Main | Ultra Wide. Super-high-resolution photos (24MP and 48MP). Next-generation portraits with Focus and Depth Control. 4X optical zoom range
- Emergency SOS via satellite. Crash Detection. Roadside Assistance via satellite
- Up to 26 hours video playback. USB C, Supports USB 2. Face ID
- Connect to the running Appium server and start a session with the capabilities above.
- Locate a control using a stable locator exposed by your app.
- Interact with it, such as tapping a button or entering text.
- Assert an observable expected state in the app.
- End the session, including when an assertion fails, so the target is not left in a stale session.
Inspect the Appium page source when deciding how to locate controls. Prefer identifiers that your app deliberately exposes for automation over assumptions about screen coordinates.
Choose Simulator or physical iPhone
| Target | Setup considerations | Best fit |
|---|---|---|
| iOS Simulator | A supported Xcode/macOS setup; avoids physical-device trust and provisioning steps. | A simpler first target and repeatable app-flow checks. |
| Physical iPhone | Must be trusted by the host. On iOS/iPadOS 16 and later, enable Developer Mode; enable UI Automation; provide WDA a valid provisioning profile. | Coverage that specifically needs a physical device. |
These targets serve different coverage needs; a Simulator should not be treated as a complete replacement for testing on hardware, or vice versa. For Safari webview testing on a real device, enable Web Inspector and Remote Automation as well. The real-device preparation guide covers trust, settings, and WDA preparation.
Rank #4
- This pre-owned product is not Apple certified, but has been professionally inspected, tested and cleaned by Amazon-qualified suppliers.
- There will be no visible cosmetic imperfections when held at an arm’s length.
- This product is eligible for a replacement or refund within 90 days of receipt if you are not satisfied.
- Product may come in generic Box.
Troubleshoot common setup and test failures
- The XCUITest driver is unavailable: install it separately with
appium driver install xcuitest, then restart or check the Appium server and confirm it loads the driver. - Session creation fails: check that the required platform and automation-name capabilities are present, Appium-specific names have the
appium:prefix, and the app path or bundle ID is valid. Confirm the requested Simulator or device is available. - The wrong device is selected or a physical target is not reached: set
appium:udidfor a real device, particularly when more than one target is available, and verify host trust and device preparation. - WDA will not start on a physical device: check UI Automation, Developer Mode on iOS/iPadOS 16 or later, and WDA’s provisioning profile. On Windows or Linux, verify that the setup follows the separate RemoteXPC route and its restrictions.
- A control is missing or taps land incorrectly: inspect Appium’s page source and logs, and check device accessibility settings. The driver documentation notes that settings such as Zoom can change coordinates or which elements appear in the source.
- Safari webview automation does not connect: on a real device, verify Web Inspector and Remote Automation are enabled.
Or skip the browser setup
If your goal is to capture a website rather than automate an iOS app, ScreenshotNeo provides a screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. Its request parameters also accept the names used by other screenshot APIs, which can make switching easier. See the ScreenshotNeo documentation.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents. The free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Can I run Appium iOS tests on Windows or Linux?
Only through the documented, restricted real-device workflow: it requires iOS or tvOS 18 or later and does not support automatic device selection or the default xcodebuild-based WDA startup.
Best Value
- 6.1" Super Retina XDR OLED, HDR10, 800 nits (HBM), 1200 nits (peak), 2532x1170px at 460ppi, 4005mAh Battery
- 8GB RAM, Apple A18 6-core CPU (2 performance + 4 efficiency cores), Apple GPU 4-core, 16‑core Neural Engine
- Rear camera: 48MP, f/1.6, wide, Front Camera: 12MP, f/1.9, wide, iOS 18.3.1, upgradable to iOS 18.5
- Connectivity: Global 4G LTE, Sub-6 GHz 5G, LTE, Wi-Fi 6, Bluetooth 5.3, NFC, USB-C, Wireless Charging (7.5W). (does not have mmWave 5G or MagSafe or physical SIM card) - Dual eSIM Only
- Unlocked for freedom to choose your carrier. Compatible with both GSM & CDMA networks. The phone is unlocked to work with all GSM Carriers & CDMA Carriers Including AT&T, T-Mobile, Verizon, Straight Talk., Etc.
Do I need a physical iPhone to start writing iOS tests?
No. A Simulator is a supported starting target and avoids the trust and provisioning steps required for a physical device.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




