HOME > android > tips

안드로이드 - INSTALL_FAILED_TEST_ONLY 에러 해결방법

By JS | 17 May 2019

안드로이드 스튜디오에서 빌드한 앱을 adb로 직접 설치할 때, 아래와 같인 에러가 발생하면서 설치가 안되는 경우가 있습니다. 실패하는 이유는 Apk가 테스트목적으로 만들어졌기 때문에 일반적인 설치 명령어로 설치할 수 없습니다. 이런 앱을 TestOnly 앱이라고 합니다.

$ adb install 'app-release.apk'
adb: failed to install app-release.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]

TestOnly 앱으로 만들어지면 아래와 같이 -t옵션을 주어 설치를 해야 합니다.

$ adb install -t 'app-release.apk'

TestOnly 앱으로 만들어지면 프레임워크 레벨에서 권한 없이 특정 부분을 디버깅하는 등의 도움을 받을 수 있습니다. 대신 릴리즈 앱으로 쓰일 수 없습니다.

Android Studio는 apk를 만들 때 AndroidManifest.xml에서 testOnly 속성을 보고 TestOnly apk를 빌드할지 결정합니다. 아래처럼 true로 설정하면 TestOnly apk로 빌드가 됩니다.

<application
    android:testOnly="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

문제는 내 앱에서 이런 설정을 하지 않았는데, 자동으로 TestOnly apk로 생성된다는 점입니다. 그 이유는 스튜디오가 자동으로 testOnly=true로 설정하기 때문입니다. 이 값을 false로 설정하는 방법은 gradle.properties파일에서 아래 항목을 false로 설정하면 testOnly가 false로 설정됩니다.

android.injected.testOnly=false

이제 빌드를 하면 일반적인 apk가 생성이 되고, adb로 -t 옵션 없이 설치를 할 수 있습니다.

정리

안드로이드 스튜디오의 기본적으로 testOnly="true"로 설정되어있다면, TestOnly apk가 생성됩니다. adb에 -t옵션을 주어 설치를 하거나, gradle.properties파일에서 testOnly 옵션을 off하여 일반적인 apk를 생성할 수 있습니다.