[메모] AGP 8.1.0부터 instrumented test가 실행되면 앱을 지우는 버그가 발생

[메모] AGP 8.1.0부터 instrumented test가 실행되면 앱을 지우는 버그가 발생

Aug 28, 2023. | By: pluulove


일반적인 앱 개발에서는 문제없지만, Instrumented Test(=UI 테스트) 실행하면 기존 개발하는 앱을 삭제하는 버그가 생겼다.

AGP 8.1.0 uninstalls app after running instrumented tests - 7.4.2 does not

https://issuetracker.google.com/issues/295039976

문제가 되는 버전

  • AGP 8.1.0 ~ AGP 8.1.1
  • AGP 8.2.0-alpha01 ~ AGP 8.2.0-beta01
  • AGP 8.3.0-alpha01

임시 해결법

이슈 우선순위가 P1이므로 빠르게 해결은 되겠지만 운영 중인 프로젝트에서는 다른 선택지를 해야 한다.

방법 1. UI 테스트 시 Application ID 변경

// 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)
  }
}

방법 2. Flavor 추가로 UI 테스트용 추가

android {
  productFlavors {
    create("Dev") { // 개발 시 사용
      dimension = "Mode"
    }
    create("UiTest") { // UI 테스트로 사용
      dimension = "Mode"
    }
  }
}

comments powered by Disqus

Currnte Pages Tags

Android AGP

About

Pluu, Android Developer Blog Site

이전 블로그 링크 :네이버 블로그

Using Theme : SOLID SOLID Github

Social Links