문제 해결게시일: 4분 분량

adb install 오류 정리: INSTALL_FAILED 코드별 원인과 해결

adb install 오류 코드별 의미와 해결 방법을 정리했어요. INSTALL_FAILED_VERSION_DOWNGRADE, UPDATE_INCOMPATIBLE부터 NO_MATCHING_ABIS, USER_RESTRICTED, 분할 APK까지 다룹니다.

adb install app.apk는 Success를 출력하거나 Failure [CODE: message]를 출력해요. 이 코드를 보면 무엇이 잘못됐는지 정확히 알 수 있어요. 자주 만나는 코드와 의미, 해결 방법을 정리했어요.

한눈에 보기

코드의미해결
INSTALL_FAILED_ALREADY_EXISTS앱이 이미 설치되어 있음adb install -r app.apk
INSTALL_FAILED_VERSION_DOWNGRADE설치된 앱보다 버전 코드가 낮음adb install -r -d app.apk 또는 먼저 삭제
INSTALL_FAILED_UPDATE_INCOMPATIBLE패키지는 같은데 서명 키가 다름설치된 앱을 먼저 삭제
INSTALL_PARSE_FAILED_NO_CERTIFICATESAPK에 서명이 없음서명하거나 서명된 debug/release APK를 빌드
INSTALL_FAILED_NO_MATCHING_ABIS다른 CPU용 네이티브 코드폰의 ABI에 맞게 빌드된 APK 사용
INSTALL_FAILED_OLDER_SDK폰의 안드로이드 버전이 너무 낮음minSdkVersion이 더 낮은 빌드 사용
INSTALL_FAILED_TEST_ONLYAPK에 testOnly 표시adb install -t app.apk
INSTALL_FAILED_INSUFFICIENT_STORAGE저장 공간 부족저장 공간 확보
INSTALL_FAILED_USER_RESTRICTED폰이 설치를 막음USB 설치 허용, 폰에서 확인
INSTALL_FAILED_MISSING_SPLIT분할 APK 일부가 빠짐모든 파일을 함께 설치

자주 나오는 오류 자세히 보기

UPDATE_INCOMPATIBLE: 서명이 다름

패키지 이름이 같은 앱이 이미 설치되어 있지만 다른 키로 서명된 경우예요. 예를 들어 테스트 중인 앱의 Play 스토어 버전이 깔려 있을 때 생겨요. 안드로이드는 기존 앱의 데이터를 보호하려고 덮어쓰지 않아요.

adb uninstall com.example.app
adb install app.apk

앱을 삭제하면 폰에 있던 그 앱의 데이터도 지워져요.

VERSION_DOWNGRADE

새 버전 위에 예전 빌드를 설치하려는 경우예요. -d로 허용할 수 있어요.

adb install -r -d app.apk

최근 안드로이드 버전에서는 디버그 가능한 빌드에서만 돼요. 그 외에는 먼저 삭제하세요.

NO_MATCHING_ABIS

APK에 폰이 쓰지 않는 프로세서용 네이티브 라이브러리만 들어 있는 경우예요. 예를 들어 ARM 폰에 x86_64 전용 빌드를 설치하거나, 32비트 안드로이드를 쓰는 폰이나 TV에 arm64-v8a 전용 빌드를 설치할 때 생겨요. 폰이 지원하는 ABI를 확인하세요.

adb shell getprop ro.product.cpu.abilist

그다음 맞는 버전이나 유니버설 APK를 빌드하거나 받으세요.

USER_RESTRICTED

폰이 설치를 거부했어요. 샤오미, 레드미, POCO에서는 개발자 옵션에서 USB를 통해 설치를 켜고 폰에 뜨는 확인 창에서 설치를 누르세요. 자세한 내용은 샤오미 USB 디버깅과 보안 설정에 있어요. 업무 프로필이나 자녀 보호 기능도 설치를 막을 수 있어요.

분할 APK와 앱 번들

Android App Bundle로 만든 앱은 여러 개의 APK 파일(base와 split)로 나뉘어 있어요. 한 번에 설치하세요.

adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk

.aab 파일은 바로 설치할 수 없어요. 먼저 bundletool로 APK를 만드세요.

Play 프로텍트가 설치를 막는 경우

Google Play 프로텍트가 알 수 없는 앱이라고 경고하면서 설치가 멈출 때가 있어요. 폰 화면을 확인하고, APK를 믿을 수 있을 때만 그래도 설치를 고르세요.

브라우저에서 APK 설치하기

ADBKit의 Install APK 패널은 폰에서 똑같은 설치를 실행하고, 실패 코드를 알기 쉬운 말로 풀어서 정확한 결과를 보여 줘요. 설치된 앱을 업데이트하려면 -r과 같은 Replace existing app을 체크하세요. USB나 ADBKit 에이전트를 통한 와이파이 모두에서 동작하고, APK는 내 컴퓨터에서 폰으로 바로 전송돼요.

설치 방법은 ADB로 APK 설치하는 법에 더 자세히 있어요.