plugins { alias(libs.plugins.android.application) } import io.appium.espressoserver.gradle.withCapabilityVersion import io.appium.espressoserver.jvmtarget.AppiumJvmTarget import org.gradle.api.GradleException import org.jetbrains.kotlin.gradle.dsl.JvmTarget val appiumCompileSdk: String by project val appiumMinSdk: String by project val appiumTargetSdk: String by project val appiumBuildTools: String by project val appiumTargetPackage: String by project val appiumSourceCompatibility: String by project val appiumTargetCompatibility: String by project val appiumJvmTarget: String by project val useComposeLibrary: Boolean = (findProperty("appiumComposeSupport") as String?)?.equals("false", ignoreCase = true) != true android { compileSdk = appiumCompileSdk.toInt() buildToolsVersion = appiumBuildTools namespace = "io.appium.espressoserver" defaultConfig { missingDimensionStrategy( "composeSupport", if (useComposeLibrary) { "composeOn" } else { "composeOff" }, ) // applicationId = appiumTargetPackage // testApplicationId = "io.appium.espressoserver.test" testHandleProfiling = false testFunctionalTest = false minSdk = appiumMinSdk.toInt() targetSdk = appiumTargetSdk.toInt() versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { getByName("release") { isMinifyEnabled = false proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } signingConfigs { getByName("debug") { findProperty("appiumKeystoreFile")?.also { storeFile = file(it.toString()) } findProperty("appiumKeystorePassword")?.also { storePassword = it.toString() } findProperty("appiumKeyAlias")?.also { keyAlias = it.toString() } findProperty("appiumKeyPassword")?.also { keyPassword = it.toString() } } } compileOptions { sourceCompatibility = JavaVersion.valueOf(appiumSourceCompatibility.uppercase()) targetCompatibility = JavaVersion.valueOf(appiumTargetCompatibility.uppercase()) } packaging { resources.excludes.add("META-INF/**") } } kotlin { compilerOptions { val normalized = AppiumJvmTarget.resolveNormalized(appiumJvmTarget) jvmTarget.set( JvmTarget.entries.firstOrNull { it.target == normalized } ?: throw GradleException( "Unsupported appiumJvmTarget \"$appiumJvmTarget\" (normalized \"$normalized\"). " + "Use one of: ${JvmTarget.entries.joinToString { it.target }}", ), ) } } dependencies { androidTestImplementation(project(":library")) androidTestImplementation(libs.junit) { withCapabilityVersion(project, "appiumJUnitVersion", libs.versions.junit.get()) } androidTestImplementation(libs.androidx.test.core) { withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get()) } androidTestImplementation(libs.androidx.test.runner) { withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get()) } // additionalAndroidTestDependencies placeholder (don't change or delete this line) }