Skip to main content
🏠Documentation|Appium Version

Last updated on : 09 Jan 2026

Pcloudy Appium Versions

Pcloudy supports multiple versions of Appium to ensure compatibility with your existing test automation infrastructure while enabling you to adopt the latest features.

Why Multiple Appium Versions?

  • Flexibility: Choose the version that works best for your project
  • Backward Compatibility: Continue using older versions while planning migration
  • Latest Features: Access new capabilities in Appium 2.x and 3.x
  • Stable Testing: Pin to specific versions for consistent test execution

Appium Evolution on Pcloudy

Appium 1.x (Legacy) → Appium 2.x (Current) → Appium 3.x (Future)

2. Supported Appium Versions

Currently Supported Versions

Appium VersionStatusRecommendedAndroid SupportiOS SupportEOL Date
3.x✅ Stable⭐ Yes✅ All✅ All-
2.0.0✅ Stable⭐ Yes✅ All✅ All-
1.22.3⚠️ Legacy-✅ AllNot SupportedDec 31, 2025
1.22.2⚠️ Legacy-✅ AllNot SupportedDec 31, 2025

Version Recommendations

For New Projects:

  • Use Appium 2.0.0 or 3.x for best compatibility and features

For Existing Projects:

  • Appium 1.x: Plan migration to 2.0.0 before EOL
  • Appium 2.0.0: Stable and recommended
  • Appium 3.x: Latest features, fully supported

3. Selecting Appium Versions

This is the recommended way to specify Appium version on Pcloudy:

Java

import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import java.util.HashMap;

public class AppiumVersionExample {
public static void main(String[] args) throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();

// Standard Appium capabilities
capabilities.setCapability("appium:newCommandTimeout", 600);
capabilities.setCapability("appium:launchTimeout", 90000);
capabilities.setCapability("appium:platformVersion", "16.0.0");
capabilities.setCapability("appium:platformName", "Android");
capabilities.setCapability("appium:automationName", "uiautomator2");

// Pcloudy-specific options
HashMap<String, Object> PcloudyOptions = new HashMap<String, Object>();
PcloudyOptions.put("Pcloudy_Username", "your.email@example.com");
PcloudyOptions.put("Pcloudy_ApiKey", "your_api_key_here");
PcloudyOptions.put("Pcloudy_DeviceFullName", "GOOGLE_Pixel10_Android_16.0.0_8fcb5");
PcloudyOptions.put("Pcloudy_WildNet", false);
PcloudyOptions.put("Pcloudy_EnableVideo", true);
PcloudyOptions.put("Pcloudy_EnablePerformanceData", true);
PcloudyOptions.put("Pcloudy_EnableDeviceLogs", false);

// Specify Appium version
PcloudyOptions.put("appiumVersion", "2.0.0"); // or "3.0.0", "1.22.3", etc.

capabilities.setCapability("Pcloudy:options", PcloudyOptions);

// Connect to Pcloudy Appium hub
AndroidDriver driver = new AndroidDriver(
new URL("https://device.Pcloudy.com/appiumcloud/wd/hub"),
capabilities
);

// Your test code here

driver.quit();
}
}

Appium 2.x

VersionRelease DateEOL DateAndroid DriveriOS DriverNotes
2.0.0⭐ Stable-UiAutomator2 3.xXCUITest 7.xRecommended for production
2.0.0-beta.71Sep 2024-UiAutomator2 3.xXCUITest 7.xLatest beta features
2.0.0-beta.66Apr 2023-UiAutomator2 2.24.xXCUITest 4.27.xOlder beta

Included Drivers:

  • appium-uiautomator2-driver: 3.9.6
  • appium-xcuitest-driver: 7.35.0
  • appium-flutter-driver: 2.11.0
  • appium-flutter-integration-driver: 1.1.3

Platform Support:

  • ✅ Android 5.0 - 16.0
  • ✅ iOS 10.0 - 18.0

Key Features:

  • ✅ Plugin architecture
  • ✅ Simplified setup
  • ✅ Better performance
  • ✅ Improved stability
  • ✅ Modern automation patterns

Appium 1.x (Legacy)

VersionRelease DateEOL DateAndroid SupportiOS SupportNotes
1.22.3Apr 2022Dec 31, 2025✅ Up to Android 12✅ Up to iOS 15Final 1.x version
1.22.2Jan 2022Dec 31, 2025✅ Up to Android 12✅ Up to iOS 15Legacy support

⚠️ Important: Appium 1.x is end-of-life. Please migrate to Appium 2.0.0 or 3.x.

Limitations:

  • ❌ Limited Android 13+ support
  • ❌ Limited iOS 16+ support
  • ❌ No new features
  • ❌ No bug fixes

5. Platform Support Matrix

Android Support

Android VersionAppium 3.xAppium 2.0.0Appium 1.22.xAutomation Name
Android 16.0✅ Full✅ Full✅ FullUiAutomator2
Android 15.0✅ Full✅ Full✅ FullUiAutomator2
Android 14.0✅ Full✅ Full✅ FullUiAutomator2
Android 13.0✅ Full✅ Full✅ FullUiAutomator2
Android 12.0✅ Full✅ Full✅ FullUiAutomator2
Android 11.0✅ Full✅ Full✅ FullUiAutomator2
Android 10.0✅ Full✅ Full✅ FullUiAutomator2
Android 9.0✅ Full✅ Full✅ FullUiAutomator2
Android 8.1✅ Full✅ Full✅ FullUiAutomator2
Android 8.0✅ Full✅ Full✅ FullUiAutomator2
Android 7.1✅ Full✅ Full✅ FullUiAutomator2
Android 7.0✅ Full✅ Full✅ FullUiAutomator2
Android 6.0✅ Full✅ Full✅ FullUiAutomator2
Android 5.1✅ Full✅ Full✅ FullUiAutomator1
Android 5.0✅ Full✅ Full✅ FullUiAutomator1

iOS Support

iOS VersionAppium 3.xAppium 2.0.0Appium 1.22.xAutomation Name
iOS 18.0✅ Full✅ Full✅ FullXCUITest
iOS 17.5✅ Full✅ Full✅ FullXCUITest
iOS 17.0✅ Full✅ Full✅ FullXCUITest
iOS 16.6✅ Full✅ Full✅ FullXCUITest
iOS 16.0✅ Full✅ Full✅ FullXCUITest
iOS 15.7✅ Full✅ Full✅ FullXCUITest
iOS 15.0✅ Full✅ Full✅ FullXCUITest
iOS 14.8✅ Full✅ Full✅ FullXCUITest
iOS 14.0✅ Full✅ Full✅ FullXCUITest
iOS 13.7✅ Full✅ Full✅ FullXCUITest
iOS 13.0✅ Full✅ Full✅ FullXCUITest
iOS 12.5✅ Full✅ Full✅ FullXCUITest
iOS 11.4✅ Full✅ Full✅ FullXCUITest

6. Capabilities Reference

Complete Capability Example

Json
import org.openqa.selenium.remote.DesiredCapabilities; 
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import java.util.HashMap;

DesiredCapabilities capabilities = new DesiredCapabilities();

// ============================================
// STANDARD APPIUM CAPABILITIES
// ============================================

// Platform Capabilities
capabilities.setCapability("appium:platformName", "Android"); // or "iOS"
capabilities.setCapability("appium:platformVersion", "16.0.0");
capabilities.setCapability("appium:deviceName", "Google Pixel 10");
capabilities.setCapability("appium:automationName", "uiautomator2"); // or "XCUITest" for iOS

// App Capabilities
capabilities.setCapability("appium:app", "cloud://APP_ID"); // App uploaded to Pcloudy
// OR
capabilities.setCapability("appium:appPackage", "com.example.app");
capabilities.setCapability("appium:appActivity", ".MainActivity");

// Timeout Capabilities
capabilities.setCapability("appium:newCommandTimeout", 600); // seconds
capabilities.setCapability("appium:launchTimeout", 90000); // milliseconds

// ============================================
// PCLOUDY-SPECIFIC OPTIONS
// ============================================

HashMap<String, Object> PcloudyOptions = new HashMap<String, Object>();

// Authentication (Required)
PcloudyOptions.put("Pcloudy_Username", "your.email@example.com");
PcloudyOptions.put("Pcloudy_ApiKey", "your_api_key_here");

// Device Selection (Required)
PcloudyOptions.put("Pcloudy_DeviceFullName", "GOOGLE_Pixel10_Android_16.0.0_8fcb5");
// OR use device selection criteria
PcloudyOptions.put("Pcloudy_DeviceName", "Pixel 10");
PcloudyOptions.put("Pcloudy_PlatformName", "Android");
PcloudyOptions.put("Pcloudy_PlatformVersion", "16.0.0");

// Appium Version (Recommended)
PcloudyOptions.put("appiumVersion", "2.0.0"); // "2.0.0", "3.0.0", "1.22.3", etc.

// Test Configuration
PcloudyOptions.put("Pcloudy_BuildName", "MyApp_Build_123");
PcloudyOptions.put("Pcloudy_ProjectName", "MyApp_Tests");
PcloudyOptions.put("Pcloudy_TestName", "Login_Test");
PcloudyOptions.put("Pcloudy_Tags", "smoke,regression");

// Media Recording
PcloudyOptions.put("Pcloudy_EnableVideo", true); // Record session video
PcloudyOptions.put("Pcloudy_EnableScreenshots", true); // Take screenshots

// Logging & Debugging
PcloudyOptions.put("Pcloudy_EnableDeviceLogs", true); // Device logs
PcloudyOptions.put("Pcloudy_EnableNetworkLogs", true); // Network traffic logs
PcloudyOptions.put("Pcloudy_EnablePerformanceData", true); // CPU, memory, battery

// Network Simulation
PcloudyOptions.put("Pcloudy_WildNet", false); // Set true for network simulation
PcloudyOptions.put("Pcloudy_NetworkProfile", "4G"); // 2G, 3G, 4G, 5G, LTE

// Device Settings
PcloudyOptions.put("Pcloudy_DeviceOrientation", "portrait"); // portrait, landscape
PcloudyOptions.put("Pcloudy_Language", "en");
PcloudyOptions.put("Pcloudy_Timezone", "America/New_York");

// Advanced Options
PcloudyOptions.put("Pcloudy_AutoWebView", true); // Auto-switch to WebView
PcloudyOptions.put("Pcloudy_AutoAcceptAlerts", true); // Auto-accept system alerts
PcloudyOptions.put("Pcloudy_SkipUninstall", false); // Keep app after test

// Apply Pcloudy options
capabilities.setCapability("Pcloudy:options", PcloudyOptions);

// ============================================
// CREATE DRIVER
// ============================================

AndroidDriver driver = new AndroidDriver(
new URL("https://device.Pcloudy.com/appiumcloud/wd/hub"),
capabilities
);

7. Version-Specific Features

Appium 3.x Features

New in 3.x:

  • ✅ Enhanced driver architecture
  • ✅ Improved plugin system
  • ✅ Better error messages
  • ✅ Performance optimizations
  • ✅ Simplified configuration

Example:

Java
PcloudyOptions.put("appiumVersion", "3.0.0");
capabilities.setCapability("appium:settings[ignoreUnimportantViews]", true);

Appium 2.x Features

New in 2.x:

  • ✅ Plugin architecture
  • ✅ Driver extensions
  • ✅ Simplified setup
  • ✅ Better logging
  • ✅ Improved stability

Example:

Java
PcloudyOptions.put("appiumVersion", "2.0.0");
capabilities.setCapability("appium:settings[allowInvisibleElements]", false);

Appium 1.x Features

Legacy features:

  • ⚠️ Basic automation
  • ⚠️ Limited OS support
  • ⚠️ Older driver versions

Example:

Java
PcloudyOptions.put("appiumVersion", "1.22.3");
// Limited to Android 12 and iOS 15

8. Migration Guides

Migrating from Appium 1.x to 2.x

Key Changes

  1. Driver Installation: Drivers are now separate packages
  2. Capabilities: Use appium: prefix for W3C compliance
  3. Server: Appium server runs differently

Migration Steps

Step 1: Update Appium Version

Java
// OLD (Appium 1.x)
PcloudyOptions.put("appiumVersion", "1.22.3");

// NEW (Appium 2.x)
PcloudyOptions.put("appiumVersion", "2.0.0");

Step 2: Update Capabilities

Java
// OLD (Appium 1.x) - No prefix
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Pixel 10");

// NEW (Appium 2.x) - Use appium: prefix
capabilities.setCapability("appium:platformName", "Android");
capabilities.setCapability("appium:deviceName", "Pixel 10");

Step 3: Update Automation Name

Java
// Ensure you're using modern automation names
capabilities.setCapability("appium:automationName", "uiautomator2"); // Android
capabilities.setCapability("appium:automationName", "XCUITest"); // iOS

Step 4: Test Thoroughly

  • Run your test suite
  • Check for deprecation warnings
  • Verify all functionality works

Migrating from Appium 2.x to 3.x

Key Changes

  1. Driver versions: Updated to latest
  2. Better performance: Improved speed
  3. Enhanced features: New capabilities

Migration Steps

Step 1: Update Version

Java
PcloudyOptions.put("appiumVersion", "3.0.0");

Step 2: Review Capabilities

  • Most Appium 2.x capabilities work in 3.x
  • Check release notes for any deprecations

Step 3: Test & Validate

  • Run tests on both versions
  • Compare results
  • Update as needed

9. Best Practices

Version Selection

DO:

  • Use Appium 2.0.0 or 3.x for new projects
  • Pin to specific version for stability
  • Test new versions before production use
  • Keep versions consistent across team

DON'T:

  • Use Appium 1.x for new projects
  • Use beta versions in production
  • Mix versions randomly
  • Forget to update regularly

Capability Configuration

Java
// Good: Organized with comments
HashMap<String, Object> PcloudyOptions = new HashMap<String, Object>();

// Authentication
PcloudyOptions.put("Pcloudy_Username", "user@example.com");
PcloudyOptions.put("Pcloudy_ApiKey", "api_key");

// Device & Version
PcloudyOptions.put("Pcloudy_DeviceFullName", "device_name");
PcloudyOptions.put("appiumVersion", "2.0.0");

// Features
PcloudyOptions.put("Pcloudy_EnableVideo", true);
PcloudyOptions.put("Pcloudy_EnablePerformanceData", true);

Testing Strategy

  1. Start with latest stable (Appium 2.0.0)
  2. Pin version in capabilities
  3. Monitor changelogs for updates
  4. Test before upgrading in production
  5. Have fallback plan to previous version

FAQ

Q1: Which Appium version should I use?

A: For new projects, use Appium 2.0.0 or 3.x. They provide the best compatibility and features.

Q2: How do I know which version I'm using?

A: Check the appiumVersion capability in your test configuration, or check the Pcloudy dashboard session details.

Q3: Can I use different versions for different tests?

A: Yes, specify appiumVersion in each test's capabilities.

Q4: What happens if I don't specify appiumVersion?

A: Pcloudy uses the latest stable version (currently 2.0.0).

Q5: When should I upgrade from Appium 1.x?

A: As soon as possible. Appium 1.x reaches EOL on December 31, 2025, and doesn't support Android 13+/iOS 16+ properly.

Q6: Do I need to install Appium locally?

A: No, Pcloudy provides Appium servers in the cloud. Just specify the version in capabilities.

Q7: Can I use custom Appium drivers?

A: Standard drivers (UiAutomator2, XCUITest, Flutter) are available. Contact support for custom drivers.

Q8: How do I report issues with specific Appium versions?

A: Contact Pcloudy support with:

  • Appium version used
  • Error message
  • Test code snippet
  • Device details

Did this page help you?