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_CERTIFICATES | APK에 서명이 없음 | 서명하거나 서명된 debug/release APK를 빌드 |
INSTALL_FAILED_NO_MATCHING_ABIS | 다른 CPU용 네이티브 코드 | 폰의 ABI에 맞게 빌드된 APK 사용 |
INSTALL_FAILED_OLDER_SDK | 폰의 안드로이드 버전이 너무 낮음 | minSdkVersion이 더 낮은 빌드 사용 |
INSTALL_FAILED_TEST_ONLY | APK에 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 설치하는 법에 더 자세히 있어요.