일반적인 앱 개발에서는 문제없지만, Instrumented Test(=UI 테스트) 실행하면 기존 개발하는 앱을 삭제하는 버그가 생겼다.
AGP 8.1.0 uninstalls app after running instrumented tests - 7.4.2 does not
https://issuetracker.google.com/issues/295039976
이슈 우선순위가 P1이므로 빠르게 해결은 되겠지만 운영 중인 프로젝트에서는 다른 선택지를 해야 한다.
// app/build.gralde.kts
androidComponents {
onVariants(selector().all()) { variant ->
if (isUiTestStartGradle()) {
variant.applicationId.set("__UI_Test_Application_Id__") // <-- UI 테스트로 사용할 Application ID
variant.resValues.put(
variant.makeResValueKey("string", "app_name"),
ResValue("AGP_SAMPLE")
)
}
}
}
// UI 테스트 체크
fun isUiTestStartGradle(): Boolean {
val regex = "connected.*AndroidTest\$".toRegex()
return gradle.startParameter.taskNames.any {
regex.containsMatchIn(it)
}
}
android {
productFlavors {
create("Dev") { // 개발 시 사용
dimension = "Mode"
}
create("UiTest") { // UI 테스트로 사용
dimension = "Mode"
}
}
}
comments powered by Disqus
Subscribe to this blog via RSS.
LazyColumn/Row에서 동일한 Key를 사용하면 크래시가 발생하는 이유
Posted on 30 Nov 2024