테스트용 APK는 debug 빌드로, 직접 배포할 APK는 적절한 키로 서명한 release 빌드로 만듭니다. debug APK도 디버그 키로 서명됩니다. 둘의 차이를 단순히 “서명이 있느냐 없느냐”로 보면 안 됩니다. Google Play 제출용 Android App Bundle(AAB)과 기기에 설치하는 APK도 구분하세요.
목적에 따라 산출물 고르기
| 목적 | 일반적인 선택 | 주의점 |
|---|---|---|
| 개발 기기에서 테스트 | debug APK | 디버그 설정·서명이 포함된 개발용 |
| 직접 배포 | 서명한 release APK | 서명 키·업데이트 호환성과 배포 경로 관리 |
| Google Play 제출 | Android App Bundle 검토 | 현재 앱 유형과 Play 제출 요건을 공식 문서에서 확인 |
Gradle로 debug APK 만들기
Android SDK와 프로젝트가 요구하는 JDK·Gradle 환경을 먼저 준비합니다. 프로젝트 루트에서 실행하며 모듈 이름이 app이고 별도 flavor가 없는 예제입니다. Windows에서는 gradlew.bat를 사용합니다.
./gradlew :app:assembleDebug
# 일반적인 결과 위치
# app/build/outputs/apk/debug/app-debug.apk
flavor·모듈·출력 설정에 따라 경로와 task가 달라집니다. 빌드가 실패하면 마지막 오류뿐 아니라 먼저 실패한 task와 SDK·의존성 오류를 확인하세요. 설치된 앱을 추출하는 작업과 소스로 새 APK를 빌드하는 작업은 다릅니다.
서명한 release APK 만들기
- Android Studio의 서명된 Bundle/APK 생성 기능을 엽니다. 버전에 따라 메뉴 위치는 다를 수 있습니다.
- APK와 대상 모듈을 선택하고 해당 앱에 사용할 keystore와 alias를 지정합니다.
- release 변형과 지원 기기에 맞는 서명 설정으로 생성합니다.
- 출력 위치의 산출물과 서명을 확인한 뒤 테스트 기기에 설치합니다.
# Android SDK Build Tools의 apksigner가 PATH에 있는 경우
apksigner verify --verbose path/to/app-release.apk
# 연결·권한이 확인된 테스트 기기에 설치
adb install -r path/to/app-release.apk
명령줄 assembleRelease만으로 올바른 release 서명이 항상 생기지는 않습니다. 프로젝트 signingConfig를 확인해야 합니다. 서명 키·암호는 소스 저장소에 넣지 않고 안전하게 보관하세요.
설치나 업데이트가 안 될 때
같은 applicationId의 기존 앱과 서명이 다른지, minSdk가 기기를 지원하는지, ABI와 배포 형식이 맞는지 확인합니다. 서명 불일치를 해결하려고 앱을 삭제하면 기기 데이터가 사라질 수 있으므로 먼저 원인을 확인하세요. 아래 화면은 2019년 기록이며 최신 메뉴·서명 기본값의 기준으로 사용하지 않습니다.
참고 자료
기존 기록의 화면과 도식
최초 발행 당시의 참고 자료입니다. 최신 설정은 위 설명과 해당 버전의 공식 문서를 확인하세요.





