Google Play Console에서 Android 개발자 인증 관련 메일이 왔다. 2025년 8월에 발표된 제도가 Play Console에 실제 등록 UI로 열렸길래, 앱 개발자 입장에서 뭘 해야 하는지만 추려서 정리했다.

핵심 3줄
- 2026년 9월부터 브라질·싱가포르·인도네시아·태국에서는 등록 안 된 앱은 인증 안드로이드 기기에 설치할 수 없다. 한국 포함 나머지는 2027년 이후.
- Play 스토어에만 배포하면 자동 등록이라 거의 할 게 없다.
- Play 외부(사이드로딩·제3자 스토어)로도 배포한다면 직접 등록해야 한다.
왜 이 제도가 생겼나 (짧게)
Google 발표문은 "Play 외부 사이드로딩 소스의 멀웨어가 Play 대비 50배 이상"이라는 숫자를 근거로 든다. 이 격차의 상당 부분은 Play의 권한 심사에서 나온다.
Google Play는 악성 앱이 주로 악용하는 권한들을 엄격하게 걸러낸다. 예를 들어 SMS·통화 기록 권한은 기본 문자·전화 앱으로 지정된 앱만 쓸 수 있다. 화면 접근성(Accessibility)이나 다른 앱 설치 권한(REQUEST_INSTALL_PACKAGES)도 "이 앱의 핵심 기능이 정말 이 권한을 필요로 하는가"를 별도 심사로 확인한다.
뱅킹 트로이목마가 Accessibility로 화면을 덮거나, 드로퍼가 추가 APK를 몰래 까는 식의 전형적 공격 패턴이 Play 입점 단계에서 상당수 걸러진다.
사이드로딩 APK는 이 필터 자체를 건너뛴다. Android 개발자 인증은 이 빈 구멍에 "개발자 신원"이라는 층을 끼워 넣는 장치다. 익명으로 악성 앱을 뿌리고 이름만 바꿔 다시 올리는 수법을 막자는 거다.
Case A — Play 스토어에만 배포
자동 등록 메일을 받았다면 거의 다 끝났다. 이 섹션만 봐도 된다.

확인 체크리스트:
- Play Console → Android 개발자 인증 페이지에서 앱 목록 상태가 모두 등록됨인지 확인
- Play 앱 서명(Play App Signing)의 앱 서명 키와 외부 배포 APK 서명 키가 같은지 확인. 다르면 외부 배포 쪽 키를 따로 등록해야 한다
- 둘 다 OK면 Case B는 안 봐도 된다
자동 등록이 안 되고 draft 상태로 남은 앱이 있다면, 같은 패키지 이름을 다른 키로 배포한 이력이 있는 경우다. 이럴 때만 Case B 절차로 넘어가면 된다.
Case B — Play 외부 배포가 있는 경우
Play Console → Android 개발자 인증 페이지 → 패키지 이름 등록 버튼.

Step 1 — 패키지 이름 입력

applicationId를 그대로 넣고, 내부용 이름은 식별만 되면 된다.
Step 2 — 공개 키 추가

임시 상태로 패키지가 만들어진다. 키 추가 버튼으로 넘어간다.
Step 3 — SHA-256 지문 입력

입력하기 전에 먼저 체크할 게 있다. 어느 키의 SHA-256을 넣을 거냐.
어느 키의 SHA-256을 넣을 것인가
Play Console → 앱 선택 → 테스트 및 출시 > 앱 무결성 > 앱 서명 페이지로 간다.

여기에 "앱 서명 키 인증서" 섹션과 함께 아래 같은 안내가 뜬다면, 이 앱은 Play 앱 서명을 쓰는 것이다.
Google에서 각 출시 버전에 서명할 때 사용하는 앱 서명 키에 대한 공개 인증서입니다. 앱 서명 키 자체는 액세스할 수 없으며 Google 서버에 안전하게 보관됩니다.
사용자 기기에 실제로 깔리는 APK는 Google이 이 키로 재서명한 거다. 그래서 등록할 SHA-256도 이 페이지 하단의 "SHA-256 인증서 지문" 값을 써야 한다.
Android Studio 공식 문서에 따르면 AAB 배포는 Play 앱 서명이 필수이고, 2021년 8월 이후 만든 신규 앱은 AAB가 필수다. 즉 최근 몇 년 안에 만든 앱은 거의 다 이 경우다.
예외. 2021년 8월 이전에 만들어 APK로 직접 업로드하는 앱은 Play 앱 서명을 안 쓸 수 있다. 이때는 업로드 키 개념이 따로 없고, 로컬 키 저장소(keystore)가 그대로 기기에 깔리는 APK의 서명 키가 된다. 로컬에서 지문을 뽑는다:
./gradlew signingReport
정리하면:
| 배포 경로 | 등록할 키 | SHA-256 어디서 |
|---|---|---|
| Play 앱 서명 사용 (대부분 여기) | 앱 서명 키 | Play Console 앱 무결성 > 앱 서명의 "앱 서명 키 인증서" |
| Play 앱 서명 미사용 (2021-08 이전 + APK 업로드) | 로컬 키 저장소 | ./gradlew signingReport |
| Play 외부 배포 전용 | 로컬 키 저장소 | ./gradlew signingReport |
| 둘 다 배포 | 양쪽 다 등록 | 각각 뽑아서 추가 키로 붙이기 |
CI 환경처럼 Gradle을 쓰기 애매한 데라면 keytool도 같이 알아두면 편하다:
keytool -list -v -keystore app/release.keystore -alias release
키 저장소 경로랑 alias는 예시니까 본인 프로젝트 값으로 바꿔 넣는다. 보통 gradle.properties의 RELEASE_KEY_ALIAS 같은 데 들어 있다.
⚠️ 헷갈리는 부분
Play 앱 서명을 쓰는데./gradlew signingReport결과를 등록하면 업로드 키 지문이 들어간다. 실제 기기에 깔리는 APK는 Google의 앱 서명 키로 재서명된 거라서 검증이 어긋난다. 2021년 8월 이후 앱이면 거의 다 Play 앱 서명이니까, 앱 무결성 페이지의 "앱 서명 키 인증서" 값을 쓰는 게 맞다.
Step 4 — 기존 패키지면 APK 업로드로 소유권 증명
새 패키지 이름이면 SHA-256 입력으로 끝난다. 반면 이미 설치 이력이 있는 기존 패키지라면 "이 키의 주인이 진짜 나"라는 증명을 한 번 더 해야 한다 (공식 가이드).
절차는 이렇다.
- Play Console에서 snippet 복사 (내 개발자 계정에 묶인 고유 문자열)
- 앱 프로젝트의
app/src/main/assets/아래에adi-registration.properties파일을 만든다 (파일명은 오타 없이 정확히) - 파일에 snippet을 그대로 붙여넣는다
- 평소대로 release APK를 빌드한다. Gradle
signingConfigs가 세팅돼 있으면./gradlew assembleRelease만 치면 서명까지 자동으로 된다 - Play Console 업로드 영역에 방금 만든 APK를 올린다. Google이 서명을 검증한다
실제 배포용 APK가 아니어도 된다. Google이 보는 건 "APK 서명 = 등록한 공개 키" 일치 여부뿐이라, 빈 프로젝트에 applicationId와 서명 키만 맞춰서 만든 APK로도 통과한다. 샘플 구조는 security-samples 리포.
참고 — 갤럭시 스토어처럼 스토어가 서명하는 경우
갤럭시 스토어에 AAB를 올리면 스토어가 최종 APK를 재서명한다. 이 경우 개발자 본인에게는 최종 APK의 비공개 키가 없다. 공식 가이드는 이럴 때 스토어에서 서명 완료된 APK를 내려받아 Play Console에 올리라고 안내한다.
서명 키가 여러 개면 같은 패키지에 추가 키 등록으로 붙이면 된다.
Step 5 — 등록 완료
등록이 끝나면 아래처럼 표시된다.

참고 자료
'모바일' 카테고리의 다른 글
| Android NDK 입문 (2) - SIGSEGV, SIGABRT, SIGBUS 네이티브 크래시 시그널 정리 (0) | 2026.05.23 |
|---|---|
| Android NDK 입문 (1) - NDK를 왜 쓰는가, JNI와 네이티브 개발 기초 (0) | 2026.05.23 |
| Google Play 데이터 보안: AdMob 사용 시 "기기 또는 기타 ID 선언되지 않음" 경고 해결 (0) | 2026.05.23 |
| WorkManager excessive partial wake lock 원인 — Android Vitals 배터리 경고 대응 (2026) (1) | 2026.04.10 |
| 1인 개발 앱 출시 3개월 후기 - 다운로드 10회, 매출 0원에서 배운 것 (0) | 2026.02.10 |
