IMPORTANT: The file content has been truncated. Status: Showing lines 50-100 of 569 total lines. Action: To read more of the file, you can use the 'start_line' and 'end_line' parameters in a subsequent 'read_file' call. For example, to read the next section of the file, use start_line: 101. --- FILE CONTENT (truncated) --- val testVariant = if (isScreenshotBuild) "release" else "debug" val testVariantCap = testVariant.replaceFirstChar { it.uppercase() } android { namespace = "com.yorvana" compileSdk = 36 defaultConfig { applicationId = "com.yorvana" minSdk = 26 targetSdk = 36 versionCode = 1 versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } testBuildType = testVariant signingConfigs { create("release") { storeFile = rootProject.file("app/${keystoreProperties["storeFile"] ?: System.getenv("KEYSTORE_FILE") ?: ""}") storePassword = (keystoreProperties["storePassword"] ?: System.getenv("KEYSTORE_PASSWORD") ?: "").toString() keyAlias = (keystoreProperties["keyAlias"] ?: System.getenv("KEY_ALIAS") ?: "").toString() keyPassword = (keystoreProperties["keyPassword"] ?: System.getenv("KEY_PASSWORD") ?: "").toString() } } buildTypes { debug { enableAndroidTestCoverage = isCoverageEnabled val dsnDebug = (localProperties.getProperty("sentry.dsn.debug") ?: "") .replace("\\", "\\\\").replace("\"", "\\\"") buildConfigField("String", "SENTRY_DSN", "\"$dsnDebug\"") } release { // Only attach the release signing config when a keystore is actually // configured. Lets PR CI run assembleRelease for R8 mapping verification // without signing secrets, and lets local devs produce an unsigned release // APK for inspection. The deploy workflow sets KEYSTORE_FILE so signing // still applies on real releases. if (keystorePropertiesFile.exists() || !System.getenv("KEYSTORE_FILE").isNullOrEmpty() ) { signingConfig = signingConfigs.getByName("release") } isMinifyEnabled = true