HOME > android > tips

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

JSFollow17 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를 생성할 수 있습니다.