I’m trying to create a distributable bundle (.zip) that contains all the necessary tools for executing actions (such tap button, activate/deactivate radiobutton) within Android apps using a WPF C# application. The goal is to allow clients to run Android tests locally using the Appium server without having to worry about dependencies from the Android SDK, adb.exe, and other related libraries.
What I’ve tried so far:
- Used the sdkmanager command-line tool to download the following libraries:
.sdkmanager.bat --sdk_root=Downloadsandroid-sdk "platform-tools" "platforms;android-35" "build-tools;34.0.0"
- Downloaded the prebuilt binaries of Node.js.
- Within the prebuilt Node.js binaries, launched nodevars.bat and installed Appium with:
npm install appium
appium driver install uiautomator2
I thought this would be enough to zip the local Node.js prebuilt libs and the Android SDK, so I could unzip the content when the WPF C# application is launched. My plan was to start the Appium server using CliWrap (https://github.com/Tyrrrz/CliWrap).
However, I discovered that the Appium server is being launched without the mandatory UIAutomator2 driver, preventing the user from executing anything.
My question is: How can I ensure that the installed UIAutomator2 driver is bundled together with the Android SDK components in a way that allows it to be properly recognized and used by the Appium server when launched from my WPF C# application?