Android OS 버전 정책
minSdk 26 (Android 8.0) / targetSdk 36 (Android 16) / 16KB 페이지 크기 대응 필수
두 값은 정하는 근거가 다릅니다. Google Play는 targetSdk만 강제하고 minSdk는 강제하지 않습니다. 그래서 minSdk는 Unity의 하한과 기기 점유율로 정합니다.
minSdk: Unity 버전별 하한
| Unity | 최소 지원 API | 비고 |
|---|---|---|
| 6.0 LTS | 23 (Android 6.0) | 23 미만 값은 enum에서 제거됨 |
| 6.3 LTS | 25 (Android 7.1) | |
| 6.5 이상 | 26 (Android 8.0) | 23~25로 설정하면 지금은 콘솔 경고만 나오고 빌드는 됨 |
Unity는 하한을 23 → 25 → 26으로 계속 올리고 있습니다. 6.5에서 "아직은 경고만"이라고 한 것은 다음 버전에서 막겠다는 예고로 보는 게 맞습니다. 지금 26으로 맞춰두면 다음 LTS로 올릴 때 다시 손댈 일이 없습니다.
26으로 올려도 잃는 사용자는 거의 없습니다
- Android Studio 2025년 12월 분포 기준 Android 7.x(API 24–25)는 1.6%, 6.x 이하는 0.7%입니다. 26 이상이면 약 97.6%를 커버합니다.
- 국내는 기기 교체 주기가 짧아 구버전 비중이 이보다 낮을 가능성이 높지만, 실제 판단은 Play Console의 앱 통계로 하세요.
- Google 라이브러리도 이미 하한을 23으로 올렸습니다 (Firebase minSdk 23, Play 서비스는 Android 6.0 이상만 지원). 23 미만은 고려할 필요가 없습니다.
targetSdk: Google Play 요건
| 시점 | 요건 |
|---|---|
| 2026-08-31부터 | 신규 앱과 앱 업데이트는 Android 16 (API 36) 이상을 타깃해야 제출 가능 |
| 기존 앱 | API 35 이상을 타깃해야, 앱의 타깃보다 높은 OS를 쓰는 기기의 신규 사용자에게 계속 노출됨 |
Unity에서 API 36을 타깃하려면
| Unity | API 35 | API 36 |
|---|---|---|
| 6.0 LTS | 6000.0.18f1 이상 | 6000.0.46f1 이상 |
| 6.3 LTS 이상 | 지원 | 지원 |
16KB 메모리 페이지 크기
2025-11-01부터 Android 15 이상을 타깃하는 신규 앱·업데이트는 64비트 기기에서 16KB 페이지 크기를 지원해야 합니다. targetSdk 36을 쓰면 이 요건도 함께 걸립니다.
Unity 엔진 대응 버전
| Unity | 16KB 지원 버전 |
|---|---|
| 6.0 LTS | 6000.0.38f1 이상 |
| 6.1 이상 | 전 버전 |
| 2022.3 LTS | 2022.3.56f1 이상 |
엔진만 올린다고 끝나지 않습니다. 앱에 들어가는 모든 .so가 16KB로 정렬돼야 합니다.
점검 체크리스트
- Unity를 위 버전 이상의 최신 패치로 올리고 다시 빌드
- Burst 패키지 1.8.21 이상 (
lib_burst_generated.so플래그 수정) - 직접 넣은 네이티브 플러그인(
Assets/Plugins/Android/*.so): 4KB로 정렬돼 있으면 Unity가 빌드 중 경고를 띄움 - Gradle로 들어오는 SDK (광고, 분석, Firebase 등): Unity가 검사하지 않습니다. 각 SDK 릴리스 노트에서 16KB 지원 버전을 확인하고, 최종 APK/AAB를 직접 검사
- 자체 C++ 코어가 있으면 NDK r27c 이상으로 다시 빌드하고 정렬 확인
최종 APK의 정렬은 Android 빌드 도구의 zipalign으로 확인할 수 있습니다.
zipalign -c -P 16 -v 4 app-release.apk
실기기 테스트는 Pixel 8 / 8 Pro / 8a(Android 15 QPR1 이상)나 Pixel 9 시리즈의 개발자 옵션에서 16KB 모드를 켜서 할 수 있습니다.
SDK를 만드는 경우
앱 minSdk와 SDK minSdk는 따로 정해야 합니다. SDK의 minSdk를 26으로 올리면 그 SDK를 쓰는 모든 호스트 앱이 26 이상으로 강제되고, 아직 23에 머문 앱은 매니페스트 병합에서 빌드가 깨집니다.
- 호스트 앱들의 Unity 버전과 minSdk를 먼저 조사합니다.
- 전부 26으로 올릴 수 있으면 SDK도 26으로 맞춥니다.
- 아니라면 SDK는 23 또는 25로 유지하고, 다음 메이저 릴리스에서 26으로 올린다고 공지합니다.
16KB 정렬은 반대로 SDK가 먼저 대응해야 합니다. 호스트 앱이 아무리 Unity를 올려도 SDK의 .so가 4KB로 정렬돼 있으면 제출이 막힙니다.
출처
- Unity 6.0 – Android requirements and compatibility
- Unity 6.3 – Android requirements and compatibility
- Unity 6.5 – Android requirements and compatibility
- Unity 6.5 Upgrade Guide
- Unity Discussions – Unity Engine support for 16 KB memory page sizes
- Android Developers – Target API level requirements
- Android Developers – Support 16 KB page sizes
- Firebase Android release notes
- heise – Android version distribution (Dec 2025)