Android 개발자 인증 정리 - Play Console 등록 가이드

2026. 4. 19. 02:30·모바일

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 입력으로 끝난다. 반면 이미 설치 이력이 있는 기존 패키지라면 "이 키의 주인이 진짜 나"라는 증명을 한 번 더 해야 한다 (공식 가이드).

절차는 이렇다.

  1. Play Console에서 snippet 복사 (내 개발자 계정에 묶인 고유 문자열)
  2. 앱 프로젝트의 app/src/main/assets/ 아래에 adi-registration.properties 파일을 만든다 (파일명은 오타 없이 정확히)
  3. 파일에 snippet을 그대로 붙여넣는다
  4. 평소대로 release APK를 빌드한다. Gradle signingConfigs가 세팅돼 있으면 ./gradlew assembleRelease만 치면 서명까지 자동으로 된다
  5. Play Console 업로드 영역에 방금 만든 APK를 올린다. Google이 서명을 검증한다

실제 배포용 APK가 아니어도 된다. Google이 보는 건 "APK 서명 = 등록한 공개 키" 일치 여부뿐이라, 빈 프로젝트에 applicationId와 서명 키만 맞춰서 만든 APK로도 통과한다. 샘플 구조는 security-samples 리포.

참고 — 갤럭시 스토어처럼 스토어가 서명하는 경우
갤럭시 스토어에 AAB를 올리면 스토어가 최종 APK를 재서명한다. 이 경우 개발자 본인에게는 최종 APK의 비공개 키가 없다. 공식 가이드는 이럴 때 스토어에서 서명 완료된 APK를 내려받아 Play Console에 올리라고 안내한다.

서명 키가 여러 개면 같은 패키지에 추가 키 등록으로 붙이면 된다.

Step 5 — 등록 완료

등록이 끝나면 아래처럼 표시된다.

참고 자료

  • Android 개발자 인증 공식 페이지
  • A new layer of security for certified Android devices (2025-08-25)
  • Play 패키지 이름 등록
  • Android 패키지 이름 등록
  • 추가 키 등록
  • Play 앱 서명 사용하기
  • 앱에 서명하기

'모바일' 카테고리의 다른 글

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
'모바일' 카테고리의 다른 글
  • Android NDK 입문 (1) - NDK를 왜 쓰는가, JNI와 네이티브 개발 기초
  • Google Play 데이터 보안: AdMob 사용 시 "기기 또는 기타 ID 선언되지 않음" 경고 해결
  • WorkManager excessive partial wake lock 원인 — Android Vitals 배터리 경고 대응 (2026)
  • 1인 개발 앱 출시 3개월 후기 - 다운로드 10회, 매출 0원에서 배운 것
João Jin
João Jin
모바일 · 보안 · AI 기록
  • João Jin
    João Jin - 모바일 · 보안 · AI
    João Jin
  • 전체
    오늘
    어제
    • 분류 전체보기 (30)
      • 프로젝트 (3)
      • 개발기 (8)
      • 모바일 (8)
      • 보안 (2)
      • AI (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • X
  • 공지사항

  • 인기 글

  • 태그

    Docker
    Native
    Docker Compose
    MCP
    MLOps
    JNI
    LINE WORKS
    MLFlow
    AI 에이전트 보안
    mcp-fence
    Android
    온디바이스AI
    model context protocol
    FastAPI
    머신러닝
    AI
    ndk
    MCP 보안
    LLM 보안
    안드로이드 NDK
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
João Jin
Android 개발자 인증 정리 - Play Console 등록 가이드
상단으로

티스토리툴바