diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index a3dba8e63f9..6319ba705ea 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -12,6 +12,7 @@ import java.io.File import java.util.zip.ZipFile import kotlin.test.assertEquals import kotlin.test.assertNotNull +import kotlin.test.assertNull import kotlin.test.assertTrue open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() { @@ -433,17 +434,25 @@ open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() { @Test fun `test KotlinToolingMetadataArtifact is bundled into apk`(): Unit = with(Project("kotlinToolingMetadataAndroid")) { - build("assemble") { + build("assembleDebug") { + assertSuccessful() + assertTasksNotExecuted(":${BuildKotlinToolingMetadataTask.defaultTaskName}") + + val debugApk = project.projectDir.resolve("build/outputs/apk/debug/project-debug.apk") + assertTrue(debugApk.exists(), "Missing debug apk ${debugApk.path}") + ZipFile(debugApk).use { zip -> + assertNull(zip.getEntry("kotlin-tooling-metadata.json"), "Expected metadata *not* being packaged into debug apk") + } + } + + build("assembleRelease") { assertSuccessful() assertTasksExecuted(":${BuildKotlinToolingMetadataTask.defaultTaskName}") - val debugApk = project.projectDir.resolve("build/outputs/apk/debug/project-debug.apk") val releaseApk = project.projectDir.resolve("build/outputs/apk/release/project-release-unsigned.apk") - listOf(debugApk, releaseApk).forEach { apk -> - assertTrue(apk.exists(), "Missing apk ${apk.path}") - ZipFile(apk).use { zip -> - assertNotNull(zip.getEntry("kotlin-tooling-metadata.json"), "Expected metadata being packaged into apk") - } + assertTrue(releaseApk.exists(), "Missing release apk ${releaseApk.path}") + ZipFile(releaseApk).use { zip -> + assertNotNull(zip.getEntry("kotlin-tooling-metadata.json"), "Expected metadata being packaged into release apk") } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/includeKotlinToolingMetadataInApk.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/includeKotlinToolingMetadataInApk.kt index 0fc7f6560d9..0b7396a1103 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/includeKotlinToolingMetadataInApk.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/includeKotlinToolingMetadataInApk.kt @@ -13,9 +13,11 @@ internal fun Project.includeKotlinToolingMetadataInApk() { val buildKotlinToolingMetadataTask = buildKotlinToolingMetadataTask ?: return@withId val android = project.extensions.getByName("android") as AppExtension android.applicationVariants.configureEach { variant -> - variant.registerPostJavacGeneratedBytecode( - files(buildKotlinToolingMetadataTask.map { it.outputDirectory }) - ) + if (!variant.buildType.isDebuggable) { + variant.registerPostJavacGeneratedBytecode( + files(buildKotlinToolingMetadataTask.map { it.outputDirectory }) + ) + } } } }