Handle multiple device options also speed ios simulator session start #14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
ADBManagerclass inadb-manager.tsto ensure only one ADB instance per host, with initialization, reset, and device-specific access methods for Android device management.IOSManagerclass inios-manager.tsto manage iOS simulators and real devices, including listing, filtering, and runtime checks for macOS.Session Creation and Device Selection Logic
create-session.tsto require explicit platform selection via theselect_platformtool, 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
boot-simulator.tstool to boot an iOS simulator by UDID, verify readiness, and provide detailed feedback, improving session startup performance.Testing and Logging Enhancements
test-setup-wda.tsfor downloading and caching the latest WebDriverAgent bundle, with detailed progress reporting and cache management for iOS automation.debugmethod to theLoggerclass for improved logging granularity.Dependency Updates
package.jsonfor Appium drivers and added new packages (appium-adb,appium-ios-device,node-simctl) to support enhanced device management features.