[Gradle] [Android] Only bundle kotlin tooling metadata for non debuggable variants
^KT-48019
This commit is contained in:
committed by
Space
parent
79565da904
commit
e897c60ef1
+16
-7
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -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 })
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user