Skip to content

Conversation

@saikrishna321
Copy link
Member

This pull request introduces significant improvements to device management for both Android and iOS platforms, enhances session creation logic, and adds new tooling and tests. The changes focus on ensuring robust and user-guided device selection, singleton management for device controllers, and improved developer experience for testing and simulator handling.

Device Management Improvements

  • Added a singleton ADBManager class in adb-manager.ts to ensure only one ADB instance per host, with initialization, reset, and device-specific access methods for Android device management.
  • Added a singleton IOSManager class in ios-manager.ts to manage iOS simulators and real devices, including listing, filtering, and runtime checks for macOS.

Session Creation and Device Selection Logic

  • Updated create-session.ts to require explicit platform selection via the select_platform tool, enforce device selection (especially when multiple devices are present), and integrate selected device UDID into capabilities. Also, capabilities are cleaned up and selected device state is cleared after use. [1] [2] [3]

Tooling for iOS Simulators

  • Added a new boot-simulator.ts tool to boot an iOS simulator by UDID, verify readiness, and provide detailed feedback, improving session startup performance.

Testing and Logging Enhancements

  • Introduced a comprehensive test file test-setup-wda.ts for downloading and caching the latest WebDriverAgent bundle, with detailed progress reporting and cache management for iOS automation.
  • Added a debug method to the Logger class for improved logging granularity.

Dependency Updates

  • Updated dependencies in package.json for Appium drivers and added new packages (appium-adb, appium-ios-device, node-simctl) to support enhanced device management features.

@saikrishna321 saikrishna321 merged commit e2011ff into main Oct 16, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants