허치패드

8월 31일부터 targetSdk 36이 의무입니다

* 안드로이드 앱을 내는 경우에 해당합니다.

targetSdk가 뭔가

안드로이드는 해마다 새 판이 나오고, 판이 바뀔 때마다 규칙도 바뀝니다. 위치를 물어보는 방법, 알림을 띄우기 전에 받아야 하는 허락, 화면을 어디까지 쓸 수 있는지 같은 것들.

규칙이 바뀔 때마다 예전 앱이 전부 고장 나면 곤란합니다. 그래서 안드로이드는 앱에 이것을 적게 합니다. 「나는 몇 년도 판 규칙에 맞춰 만들었습니다」. 이 숫자가 targetSdk입니다. 폰은 그 숫자를 보고 그 시절 규칙을 적용합니다. 새 폰에서 옛날 앱이 그대로 도는 이유.

건물로 치면 준공 연도에 가깝습니다. 소방법이 바뀌어도 예전에 지은 건물을 다 뜯지 않고 지을 때 기준으로 봅니다. 대신 새로 짓는 건물은 새 기준을 따릅니다.

숫자는 판 이름이 아니라 순번. 안드로이드 14가 34, 15가 35, 16이 36입니다.

targetSdk는 「이 앱이 돌아가는 최소 안드로이드」가 아닙니다. 그건 minSdk라는 다른 숫자입니다. targetSdk를 36으로 올려도 낮은 버전 폰에서 안 돌게 되지 않습니다.

마감

안드로이드 판 번호와 마감. 새 앱과 업데이트는 API 36 이상이어야 합니다.
안드로이드 판 번호와 마감. 새 앱과 업데이트는 API 36 이상이어야 합니다.
언제부터2026년 8월 31일
무엇이새 앱과 앱 업데이트
조건안드로이드 16(API 36) 이상을 겨냥
이미 올라간 앱API 35 이상이면 유지
34 이하인 앱더 높은 안드로이드를 쓰는 기기에서 새 사용자에게 안 보임

시간이 더 필요하면 11월 1일까지 연장을 신청할 수 있고, 신청서는 연내에 Play Console에 열린다고 합니다.

두 줄로 안 끝나는 이유

고치는 자리는 설정 파일 두 줄입니다. 그런데 API 35부터 화면을 끝까지 채우는 방식이 강제입니다. 숫자만 올리면 앱 제목이 상태 표시줄 밑으로 깔립니다.

  • 컴퓨터 화면에서는 안 드러납니다. 실기기에서만 보입니다
  • 상태 표시줄과 아래 제스처 바가 차지하는 자리를 코드로 비워줘야 합니다
  • 값: 코드는 30분. 실기기 확인은 별도
  • 근거: Meet Google Play's target API level requirement

웹을 감싼 앱은 한 겹 더

웹 화면을 앱으로 감싸는 방식(Capacitor 같은 것)을 쓴다면 감싸는 도구의 버전도 봐야 합니다. 안드로이드 16은 시스템 바 인셋 동작이 달라졌고, 옛 버전 도구는 그것을 정리해두지 않았습니다.

  • 함정: 웹에서 쓰는 env(safe-area-inset) 값은 안드로이드 웹뷰에서 0입니다.

그 값에 기대 여백을 잡아뒀다면 화면이 상태 표시줄 밑으로 깔립니다

확인 상태

실제로 겪음숫자만 올렸다가 화면이 깔린 것, 실기기에서만 드러난 것
문서로만 확인연장 신청 절차

← 블로그 목록