Next-Gen App & Browser Testing Cloud
Trusted by 2 Mn+ QAs & Devs to accelerate their release cycles

Appium itself never talks to a phone's operating system directly. It delegates that work to platform automation drivers: the XCUITest driver for iOS and iPadOS, and the UiAutomator2 driver for Android. Those drivers are built on top of Apple's XCTest and WebDriverAgent (shipped inside Xcode) and Google's UiAutomator (shipped in the Android SDK). When Apple or Google releases a brand-new operating system, the matching toolchain and an updated Appium driver usually arrive after the OS does, so there is a short lag window in which the latest iOS or Android is not fully supported until you update the driver, the toolchain, and the Appium server to versions that line up.
The root cause is architectural, not a defect. Appium 2.x and 3.x ship a thin protocol server that speaks the W3C WebDriver standard, while every piece of real device interaction lives in installable, independently versioned drivers. That design is great for flexibility, but it means OS support is gated by whichever native framework the driver wraps, and those frameworks belong to Apple and Google, not the Appium project.
Because compatibility is a chain, a mismatch at any single layer surfaces as "Appium does not work with the latest OS." The table below shows the layers that must agree for iOS and Android. Treat the exact version numbers as illustrative and confirm them against the current Appium driver release notes when you set up a project.
| Layer | iOS path | Android path |
|---|---|---|
| Appium server | 2.x / 3.x (latest stable) | 2.x / 3.x (latest stable) |
| Platform driver | XCUITest driver (current major) | UiAutomator2 driver (current major) |
| Native test framework | WebDriverAgent on Apple XCTest | Google UiAutomator |
| Toolchain | Xcode supporting the target iOS (macOS only) | Android SDK, build-tools, platform-tools |
| OS coverage | Roughly the two latest iOS versions | Broad Android API-level range |
The takeaway is that an old Xcode paired with a new iOS, or an Appium 2 server pinned while a driver now requires Appium 3 as a peer dependency, both produce the same symptom. Diagnosing "latest OS" failures is mostly a matter of finding which row in this matrix is out of date.
Work through the matrix from the server downward. The steps below are ordered so each one rules out a layer before you touch the next.
appium -vappium driver list --installed
appium driver update xcuitest # iOS
appium driver update uiautomator2 # Androidappium driver uninstall xcuitest
appium driver install xcuitestnpx appium-doctorThe reason the lag is painful locally is that you own every row of the matrix. A managed grid removes that burden. With TestMu AI Appium Testing on a real device cloud, the latest iOS and Android devices are pre-provisioned with a matched Appium server, XCUITest or UiAutomator2 driver, and the corresponding Xcode or Android SDK, so you never upgrade a local toolchain to chase a new OS.
New OS versions are added as devices are onboarded, and switching between them is a matter of changing the platformVersion capability rather than reinstalling drivers. Running on a Real Device Cloud also means you validate against genuine hardware and OEM builds instead of approximations, which matters when a new OS changes behaviour around permissions, gestures, or system dialogs. For the broader remote-execution picture, see Why Is Appium Not Able to Run Tests on Remote Devices or in the Cloud?.
The XCUITest driver automates iOS through WebDriverAgent and Apple's XCTest, both of which ship inside Xcode. A brand-new iOS needs a matching Xcode release before WebDriverAgent can build against it, so the XCUITest driver update follows Xcode rather than the OS. Until that driver release lands, the latest iOS is not fully supported.
On Android, Appium uses the UiAutomator2 driver, which is built on Google's UiAutomator and the Android SDK. A new Android API level usually requires updated Android SDK, build-tools, and platform-tools plus a refreshed UiAutomator2 driver release. If any of those lag the OS, your tests can fail until you update them.
Partly. You need to update both the Appium server and the specific platform driver, because the driver is what actually talks to the OS. Running appium driver update xcuitest or appium driver update uiautomator2 pulls the OS-compatibility fixes, while the server upgrade keeps the peer-dependency requirements aligned.
Use the latest stable Appium 2.x or 3.x with the newest XCUITest and UiAutomator2 drivers. Appium 1.x is end of life and its bundled drivers no longer support Android 13+ or iOS 16+, so staying on 1.x guarantees incompatibility with modern operating systems.
Usually shortly after the vendor toolchain ships. Once Apple releases the matching Xcode or Google releases the new Android SDK, the driver maintainers publish a compatible release, often a beta or pre-release first. Adopting a beta driver lets you test the new OS earlier in the lag window.
Yes. A managed real device cloud keeps the operating system, Appium server, and platform drivers aligned for you. You simply set the platformVersion capability and run your tests against a pre-provisioned, compatible environment instead of upgrading Xcode, the Android SDK, and drivers locally.
KaneAI - Testing Assistant
World’s first AI-Native E2E testing agent.

TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance